Skip to main content

Full text of "SYNC Magazine"

See other formats


The magazine for Sinclair users 


Math and Science: 
* Least Squares Analysis 


Programming: 
* Alternative Display 
* Storing Words 


Space Warp 
Graphics Game 


a сша 


BVM » DATS 


THE SUBSCRIPTION MAGAZINE FOR THE ZX-81 MICROCOMPUTER 

FOR THE ZX-80 & ZX-81 
8K ROM IK - 16K 
GAMES-EDUCATIONAL-BUSINESS 
GRAPHICS-TUTORIAL-ETC. 


12 Mo. Issues — 6 Bi-Month 
CASSETTES 


AT LEAST 6 PROGRAMS EACH | 


$39.50 


Ill. Residents add $2.07 tax 
outside USA add $10.00 


Ask for operator #383 


muc 24 HR. HOT LINE 800-543-1300 


(312) 628-8955 IN OHIO - 800-582-1364 


Make your “LITTLE” ZX81 


work like a BIG computer 
with BYTE-BACK modules 


INSTANT INFORMATION .| 16-K MEMORY MODULE 
BYTE-BACK’S MD-1 


MODEM only $99.95 


WIRED and TESTED $119.95 


Use your phone to connect your “LITTLE” ZX81 
to the "LARGEST" computer networks in the world. With 
BYTE-BACK's MD-1 MODEM connected all you do is dial 
a phone number (usually local), press a few keys and 
watch the data appear on your TV screen. (Software is 
included) 

This MODEM can be used in either the "originate" or 
"answer" mode with selectable baud rate. 


You can have immediate access to: 


DOW JONES UPI And Much More! 
RS-232 PORT INCLUDED 
As an extra bonus ап RS-232 port is provided 
to allow you to drive all standard RS-232 periph- 
erials.(75 to 9600 Baud) 


64-K MEMORY MODULE 


It has a Metal Case 


NEW 
in stock! 


$139.77 


WIRED and TESTED $154.95 


It has a Metal Case 


only 


$69.95 


WIRED апа TESTED $79.95 


in stock! 


But unlike other 16-K memory modules, up to 
three BYTE-BACK M-16 memory modules 
can be connected at one time to get a total of 
48K. 


(It can be used with the SINCLAIR memory module.) 
BYTE-BACK'S BB-1 


CONTROL MODULE 
$59 00 In Stock! 


= KIT 
WIRED and TESTED $69. 


e 8 Independent Relays 


(with LED status indicators) 


e 8 Independent TTL Inputs 
(with Schmitt trigger buffers) 


e By using a single POKE command 
you can change and latch the status 
of each of the 8 relays. 

e Your ZX80/1 can read the 
status of all 8 inputs by the use 
of a single PEEK command. 

e A comprehensive manual is 
included that has complete appli- 
cation details. 


The new M-64, together with the ZX-81, gives a full 
64K of system memory (ROM * RAM) with the same high 
reliability of our proven 16-K module. 


ALL MODULES CARRY 90-DAY WARRANTY 
Remember with:BYTE BACK modules you are NOT limited to using only one module at a time! 


C 
Mail To: BYTE-BACK CO. * Rt. 3, Box 147 е Brodie Rd. • Leesville, S.C. 29070 


п | O MOI Kit MERIT TT $139.95 O M-16 КЕ с.га 4. .нз виз жакан ка ке» $69.95 
ш © | О M-64 Wired and Tested............. $154.95 O M-16 Wired and Tested.............. $79.95 
GOSS | OM-64 Blank РС Воага............... $19.95 [O M-16 Blank PC Воага............... $19.95 
О@(;Ф | овв-і кігапа Мапиа!.................. $59 O Modem Кйй........................ 599.95 
OTe ©) | ОВВ-І Wired and Tested and Manual...... $69 O Modem Wired and Tested ........... $119.95 
& - 
"PE S | О ВВ-1 Blank PC Board and Manual....... $29 Shipping and Handling $4.95 
ше ao 
ES 2 | ORDER PHONE (803) 532-5812 Bill My C1 Visa О Mastercharge “уурусу 
aa ui & | Exp.Date. — —— — . Card No. 
i -d | Name f , 
с | Address MasterCard 
| City/State/Zip 
| 


We carr 


all the parts 
and the 


| | > you 
rinted Circuit Board. 


INTEGRATED CIRCUITS 
VOLTAGE REGULATORS 


POSITIVE NEGATIVE 


7805 +5V 7905 -5V 
7812 +12 7912 -12 
7815 +15 7915 -15 
7824 +24 1.25 €a. 


HEAT SINK 25¢ 


LM323K 5VOLT 
3AMP 3.95 


HEAT SINK 75¢ 


LLL 

+ + © © © 7Í o 

+ «+ © © o £7 5 
. «+ о © э o 


MEMORY 
2114 1KX4 STATIC 4.00 8/28.00 
4118 1KX8 STATIC 8.25 8/58.00 
6116 2KX8 STATIC 14.95 8/125.00 
4116 16K X1 DYNAM 3.50 8/24.00 
2716 2KX8 EPROM 12.00 8/84.00 
2732 4KX8 EPROM 19.95 8/135 00] 


TTL 


PARTIAL. LISTING 


7400..... .24 74LS00..... 25 
7403..... .24 74L.503..... 125 
7409..... .28 74LS09..... «30 
7490..... .35 74LS90..... -45 
74148... .75 7415138... .70 
74154..1.25  74LS154.. 1.75 


74190....75 7415190... .85 
7415244 1.00 74LS245.. 


CMOS 


PARTIAL LISTING 


74CO00..... .40 4001.... .30 
74C02..... .40 4011.... .30 
74C30..... .40 4016.... . 60 
74C90.... 1.35 4020... 1.20 
74C154.. 4.25 4071.... .30 
74C240.. 2.35 4511... 1.15 
74C244.. 2.35 4553... 3.95 


LINEAR 


MC3401 QUAD OP-AMP .... .50 
MC1555 ТІМЕВ.................. .45 


BI-FET ОР-А МР5 LOW NOISE 


SINGLE Т1 081... .75 
DUAL. TLO82. 1.25 
QUAD TLOB84.. 2.25 


TLOZ71... .90 
TLO72.. 1.50 
TLO74.. 2.50 


WIRE WRAP WIRE 


KYNAR #30 WIRE WRAP WIRE 


PRECUT TO LENGTH THEN 1" 
STRIPPED FROM EACH END. 


WE GOT IT IN RED, YELLOW, 
BLUE,BLACK,WHITE & GREEN 


LENGTH 100/BAG 1000/BAG 
3.0" 1.45 7.50 
32.9'' 1.58 8.25 
4.0'' 1.65 9.00 
4.5'' 1.75 9.75 
5.0" 1.85 10.25 

ADD'L 0.5' UP TO А TOTAL 

OF 10.0" .10 725 


#30 BY THE SPOOL 
100° ...3.95 500° ..11.95 
1000° ...19.95 


CLIP AND STRIP 


, CUT AND STRIP#30 
" WIRE IN ONE OPERA- 


TION.TAKES A LOT 
OF THE WORK OUT 
OF WIRE WRAPPING, 


CAS1 3 OU oor e occ S 


HOBBY WRAP TOOL 
AUTO-INDEX : 
ANTI-OVERWRAP 
MODIFIED WRAP 


TOOL WITH BIT 
BYV26308B. .... .27.95 


WRAPS AND UNWRAPS 
BUILT-IN#30 WIRE STRIPPER 


WSU30... REGULAR 
WSU30M MODIFIED 


Check 
Mastercharge. Add $3.00 for 
ing and handling, Texas 
nts add 5% state sales tax. 
Foreign orders add $10,00 for 
shipping; U.S. funds only. 
Limite 


i 
reside 


WANT TO FIX YOUR SINCLAIR? ADD MORE MEMOR Y? ADD A BUSS? WE GOT YOUR PARTS. 


need to repair your Sinclair with the Ене of the Sinclair Logic Unit, the ROM, 
In addition we carry OK, WELLER. and і ( / 

cases and VECTOR breadboarding and prototyping supplies. We stock resistors, capacitors, integrated circuits, 
descrete solid state devices, switches, sockets, connectors etc. etc. Below is a very small sampling of our products. 

If you see what you need give us a call, if you don’t write for our free catalog. 


FULL-SIZE KEYBOARD 


INCREASE YOUR COMPUTING 
TIME BY DECREASING TYPING TIME 

ADD A FULL-SIZE KEYBOARD TO YOUR 
ZX-80/81 OR MICROACE. YOUR FINGERS 
WILL LOVE YOU FOR IT. 


OUR KEYBOARD HAS 62 KEYS SO YOU CAN 
ADD LOTS OF EXTRA FUNCTIONS. WE WILL 
EVEN SEND YOU PLANS ON HOW TO ADD 
SUCH USEFUL THINGS AS AUTOMATIC SHIFT 
ON CERTAIN FUNCTIONS, AUTOMATIC REPEAT 
AND RESET. EACH KEY HAS GOLD CONTACTS 
AND IS FIRMLY MOUNTED TO A BLACK METAL 
PLATE ‘WHICH MEASURES 15-1/2" BY 4" AND 
DOUBLES AS AN ATTRACTIVE FACE PLATE. 


BEST OF ALL YOU CAN GET YOURS IN KIT 
FORM, COMPLETE WITH INSTRUCTIONS, OR 
WIRED AND READY TO GO. EITHER WAY WE 
WILL INCLUDE THE EXSPANSION PLANS. 


KEYBOARD KIT. 34.95 WIRED & TESTED..49.95 


YOUR 
ULTIMATE POWER SUPPLY 


WHY WASTE TIME BUILDING NEW POWER 
SUPPLIES WHEN YOU WANT TO EXPAND? 
BUY AN ULTIMATE SUPPLY AND SPEND 

ALL YOUR TIME ON PROJECTS NOT P.S. 


MULTIVOLTAGE 
FOR DYNAMIC RAMS ETC. 
INPUT 120 - 220 VAC 
OUTPUTS +5VDC--5AMP 

*12VDC 1AMP 
—12VDC-1AMP 
12VAC--1/2 A. 


SINGLE VOLTAGE 
FOR CMOS & TTL LOVERS 
I N PU T—------- 120 - 220 VAC 
OUTPUT--— +5VDC---9AMP 
DIM.——9-*t/2X 5X 5 
MOD CPS-169 
ALSO AVAILABLE 
120 IN 5VDC-3AMP MOD SPS 30-5...24:95 
120 IN 5.8VDC--1.2AMP MOD SPS 1-5 


money order, VISA, or 


quanities on some items. 


CELITE tools, HAMM 


EASY ONE HAND OPERATION 
ALL METAL CONSTRUCTION 
REPLACEABLE TEFLON TIP 
REGULATED SUCTION 


VACUUM BASED 
LIGHT DUTY VISE 
1-1/2" WIDE JAWS 
1-1/4'" TRAVEL 


LA E T E 


ALTEX ELECTRONICS 


618 W. Sunset 
San Antonio, Texas 
78216 


1—-512—828—0503 


ND, and PAC-TEC 


SINCLAIR R. F. 
CONNECTOR | MODULATOR 


GOLD CONTACTS 
WIRE WRAP OR 
SOLDER TAIL 
$7.50 


USA VHF 5.95 


DATA 
CASSETTES 
5175 
10 for *159? 


Made for Datapoint 
by Maxell 
90 min. with case 


5 screw high strength shell 


JOYSTICK 


4 - 10K Linear pots 
1- V2" metal handle 
2- V8 square 


$5.95 


IC SOCKETS 


*PIN SOL WW 


SOLDER 


KESTER 60/40 
Rosin core. .020 dia. 
1 Pound Roll 


SOLDERING IRONS 


WELLER 
WP25 120V 25W 17.03 
WP40 120V 40W 20.93 

PENCIL THIN IRON (NOT SHOWN) 

WM120 120V 12W 19.47 


SOLDERING TOOL STAND 


STAND WITH SPONGE, 
$ BASE & RECEPTACLE. 


FITS WP-25 WP-40 W-60 
MOD PH-60 


FITS WM-120 
MOD PHM-120 


INSERTION / 
EXTRACTION TOOLS 


INS1416 INSERT TOOL 4.35 
MOS SAFE INSERT TOOLS 


MOS1 416 14-16 PIN.....9.95 
MOS2428 28-28 PIN..... 9.95 
MOS40 36-40 PIN....10.95 


EXTRACTION TOOLS 
EX1 ` 14-16 PIN.....1.49 
EX2 24-40 PIN. ...9.95 


WK7 COMPLETE KIT ...37.95 


The magazine for Sinclair users 


Ei іг 


May/June 1982 


Volume 2, Number 3 


DEPARTMENTS 
4 LOISIR. ooo d RRERENRERA PUR FI URGERE CE Va енын эке 
8 SYNC Мойөз................................. Grosjean 
20 Try TRIS. usa kar he ERa etx RREA Y m Sad Seeler, Bush 
20 Glitchoidz Верок..................................... 
14 Perceptions. ................................. Ornstein 


The ZX81 Parser and User-Defined Commands 
12 dust for Fun... ool 


42 Ңө$оОигСӨ$........................................... 
48 Index to Аауег\ї$ег$.................................. 


HARDWARE AND THE KEYBOARD 


23 Two-Switch Human Interface 
for the Communicative Impaired. ............... Dorcey 
Using the ZX80/81 to communicate 


28 Keyboard/System Conversion: 
The First 40/1 Кеуѕ.......................... Trelease 
Add a keyboard to your ZX80/81 


PROGRAMMING TECHNIQUES AND FUNCTIONS 


1 6 An Introduction to Expression Evaluation........Logan 
How your 8K ROM handles expressions 


38 An Alternative Display —Tank Battle. ............ Nisbet 
Developing displays; game 


46 Storing 3-Letter Words in an Array............ Manders 
Memory squeezing; game 


48 Character Веуегѕе. .......................... Егеетап 
Моге on strings 


MATH AND SCIENCE 
32 Least Squares Data Analysis with the ZX80/81..... Salt 
Finding the straight line 
GAMES 
44 Space Магр...................................... Fox 
Command decisions for the touch down 
REVIEWS 
43 ZX Саіахіапѕ............................. Wren-Hilton 


Software review 


—————— P ЕГА — I OEE d 


Staff 
Рири$һег...................................... ааз David Н. Ahl 
Managing Editor... 506s <:iccrssasdecetrisrinrenvens Paul Grosjean 
Contributing Edilior. ...... 0.066655 ордоо wee ha David Ornstein 
U.K. Соггезропдеп{. ........................... Martin Wren-Hilton 
Secretary... b ut 6a 5 cmrteuPbdnremcqed o d dba engl Elizabeth Magin 
Art Рїтесїог......................... 2...2... Susan Gendzwil 
Assistant Art Director..........................-.Diana Negri Rudio 
Tunes еге. iuo ssoceway Eg t RRDURAM RAATCDE: pE Кшз Karen Brown 

Renea Cole 

Financial Coordinator. ....... ooo rns William L. Baumann 

Personnel and Еіпапсе............................ Patricia Kennelly 

ChreulaBtiON, «cose binds sveaanedne sua RR RA Francis Miskovich 

Carol Vita 

Advertising Sales Managét.........2o eR RR Jim Beloff 
MEMBER 


Volume 2, Number 3 


SYNC (USPS: 585-490: ISSN: 0279-5701) is published bi-monthly for 
$16 per year by Creative Computing, 39 E. Hanover Ave., Morris Plains, 
NJ 07950. 

Second class postage paid at New York, NY 10001, and at additional 
mailing offices. 

Subscription rates: USA: 6 issues, $16; 12 issues, $30: 18 issues, $42. 
Canada: $3 per year additional. Other foreign: $5 per year additional. 
U.K. air: 6 issues, £13. Minimum charge card order: $10. 

For SYNC advertising information, contact Jim Beloff, SYNC Advertis- 
ing Sales Manager, Ziff-Davis Publishing Company, One Park Ave., New 
York, NY 10016 (phone 212/725-4216). 

All other correspondence should be addressed to: SYNC, 39 E. Hanover 
Ave., Morris Plains, NJ 07950. In U.K., SYNC, 27 Andrew Close, Stoke 
Golding, Nuneaton CV136EL. 

Postmaster: Send address changes to SYNC, PO Box 789-M, Morristown, 
NJ 07960. 


a Creative competing PUBLICATION 


Шагы _ 


Help Wanted 


Dear Editor: 

I have a special request. I would like to 
have some information on producers and 
shops which sell ZX81 music programs, 
like one which changes the ZXS81 into an 
electric organ or a synthesizer. I own a 
ZX81 and I am very interested in making 
and playing music on it. Also I am inter- 
ested in a good accounting system for a 
small business. 


Arnar Matthiasson 
Samvinnuskolinn 
Bifrost 

311 Borgarnes 
Iceland 


Dear Editor: 

I recently acquired my ZX81 (16K) with 
little knowledge of programming under 
my belt. I received my first issue of SYNC 
(2:1), and I was excited at the prospect of 
using machine language. Then I encoun- 
tered two problems: 

1) I would be interested in knowing 
how to modify the "Flattop Lander" code 
for my machine. The system variables 
appear to be different, and I have no 
source equivalents. 

2) I twice, no thrice, entered the "Life" 
program with no success. The initial border 
routine worked, but after I entered some 
numbers/cells the system would crash when 
I input 0 to continue. Are there any bugs? 
I even entered it once using Mr. Ornstein’s 
Window program (a long process I can 
assure you). 

Any help you could give me would be 
appreciated. I enjoy your magazine, though 
I wish that it were monthly. Also, which 
back issues are still available? 


Keith Liggeti 
21111 Strathmoor Lane 
Huntington Beach, CA 92646 


Ed. — The "Life" program did have some 
problems as some readers have called to 
our attention. The author has supplied 
the revisions which are included in our 
Glitchoidz Report. A few back issues of 
SYNC 1:2 are available at $2.50 each. 


Payment should accompanv the order. 


4 


Dear Editor: 

Enclosed is a list of several errors that I 
found in The Gateway Guide to the ZX81 
and ZX8&0. | am sure that most readers 
would spot the errors quickly, but beginners 
may not. I feel that the book is well worth 
the money, as is The ZX81 Companion 
(but I wish more about the intricate working 
of the ROM had been included). 

Now a question. Is there any way to 
write a machine language routine to read 
TRS-80 500 BAUD tapes? I sent for a kit 
to do so, but it is really designed for an S- 
100 Bus operating with a Z80 CPU. How 
about an article in SYNC on this? How 
about more articles on machine routines 
to extend the 8K Basic like the READ 
routine in Edward Kennedy's article ($ УУС 
1:5). How about MERGE? How about a 
routine to set a single pixel? 

I liked very much David Ornstein's article 
on the 4K ROM SAVE command. I hope 
that he does as threatened and writes an 
article on a full fledged cassette based 
I/O processing system, especially if he 
includes details on wiring the cassette to 
forward or reverse under CPU control. 

I have also sent for a light pen (designed 
for the TRS-80) that I would like to hook 
up to my 8K ROM ZX80. Any suggestions? 
How about some articles on adding output 
ports to make the ZX80 compatible with 
TRS-80 peripherals? 


Timothy MclIlwee 
Flagler Palm Coast High 
PO Box 488 

Bunnell, FL 32010 


Ed. — The corrections have been passed 
on to our Book Division. Again our readers 
have set out a number of challenges. We 
look forward to your responses. 


Program Problems 


Dear Editor: 

I am the owner of a ZX80 and a ZX81. 
I have been trying some of the examples 
in your magazine and have been having 
problems. E.g., In Robot Composer (1:5) 
I cannot enter line 150; in Defuse (1:5), 
lines 10, 20, 30, 40; in Graphic Surprises 


(1:3), lines 130, 200, 1010; Variable Con- 
versions (1:3), line 30; The TLS Function 
(1:4), line 50 LET P$—TLS(AS) (syntax 
error); Mini-Billboard, line 21 LET 
AS-—' TLS(AS). Please tell me how I can 
do these. 


Edward A. Parker 
582 East Sunset Dr. 
Altadena, CA 91001 


Ed. —First and foremost be sure that you 
are entering your program on the correct 
ROM. All the programs in issues 1:1, 1:2, 
1:3, and 1:4 are for the 4K ROM and 
cannot be entered on the 8K ROM without 
translation. In issues from 1:5 on programs 
for both ROMs are included, and the 
machine requirements for the programs 
are given at the top of the page. Most of 
the lines referred to above seem to involve 
the random feature. On the 4K ROM 
RANDOMISE is on the J key and RND(x) 
must be spelled out; on the SK ROM INT 
and RND are functions and must be entered 
directly from the keyboard in one key- 
stroke. In the line PS—TLS(PS$), ignore 
the syntax error and finish typing in the 
line. It serves to remind vou that something 
must be completed, e.g., the second 
parenthesis or quotation marks. For the 
SK ROM the line must be rewritten as 
LET P$=P$(2 TO #). 


ZX80 Slow Mode 


Dear Editor: 

Is there any way that I can get my 
ZX80 with the 8K ROM to run in the 
SLOW mode? : 


Anthony Larry 
228 Main St. 
West Haven, CT 06516 


Ed. —At present the only method we have 
heard of is the MicroAce Video Upgrade 
Kit (see a review of this kit in SYNC 2:1, 
p. 27) However, MicroAce has closed 
down its U.S. operation, and we have 
received no information whether a U.S. 
distributor for the kit has been arranged. 
MicroAce can be reached at: MicroAce 
Compshop. 14 Station Road, New Barnet, 
Hertfordshire ENS IQW, United Kingdom. 


SYNC Magazine 


Software Publishers —Analyze the NEED! 


The TIMEX and SINCLAIR ZX systems are cassette-based. Everything 
depends on delivering software product the user can LOAD very readily, with- 
out difficulty. In publishing software for these machines, reputation and repeat 
orders depend on good programming AND ready-loading product. 


Software Publishers —Qualify the SOURCE! 


COOK LABS is the product source that DOES (1981). Users don't have problems with T.I. 
duplicate digitally — not audio-analog. cassette software. They needn't with yours. 


COOK LABS has been making digital cassettes SINCE 1952 Emorv Cook's name has been 

for serious software publishers for many years. mne y 3 wid Ладе 1 

Why? internationally associated with leadership in 
| | EM electronics design. 

COOK LABS is the only duplicating source 

with Texas Instruments CERTIFICATE of COOK LABS operates under his engineering 


AWARD for EXCELLENCE of QUALITY control and supervision. 


Wil] ор 


(two of every Kioa The Noah's Д5 


that wits 


SOFTWARE PUBLISHERS — PHONE, WRITE, USE COUPON... GET INFORMATION NOW! 


COOK LABORATORIES, INC. NAME  _——— 
Р.О. Вох 529 
Norwalk, CT 06856 (Phone 203-853-3641) COMPANY. 
[] Inform me about COOK services for: 
[] Software duplication. ADDRESS 


[] Procurement of labels, inserts, etc. 
[] Fulfillment, including fulfillment of individual orders. ee E ион а Ene АКЫ" 


[] Send free booklet: Cassettes — An Effective Software 
Medium." PHONE (OPTIONAL) 


When your computer wont 
speak your language, 
you need a basic handbook. 


As a matter of fact, everyone who works in BASIC needs The 
BASIC Handbook. It is the definitive reference 
work on the subject of BASIC. 

The BASIC Handbook is an easy-to- 
use encyclopedia of nearly 500 words 
covering the “dialects” used by virtu- 
ally every BASIC-speaking computer 
in the world. But more than that, it's a 
simple, step-by-step guide to translat- 

ing programs from one computer 
to another. So now you can actu- 
ally use software printed in 


M 
/! 


magazines and elsewhere, no 
matter what computer you own. 
Written by Dr. David А. Lien, author 
of the Tandy TRS-80 Level I User's Manual and 
the Learner's Manuais for the Epson e 
MX printers, this completely revised ————— 
Second Edition contains almost twice 

as many entries as the best selling 

First Edition, making it 

by far the most up-to- 

date BASIC reference ati OO 
book you can buy. 

Extensively indexed and cross-referenced, The BASIC Hana- 
book gives you 480 pages packed with the information you need to 
be a better programmer. And if, after 30 days you don't agree it's 
indispensable, send it back. We'll return your money. 

INN The BASIC Handbook is available in several 
à languages and accepted throughout the 
world. No one who programs in BASIC 
should be without it. 

Available at better computer and 

E oo. book stores, 
s or call (800) 854 -6505 
In California (714) 588 -0996 
To order by mail, send check or 
money order for $19.95 (California 
residents add 6%), plus $1.65 
shipping and handling. 
Overseas orders send 
$19.95 plus $2.38 surface 
shipping and handling. 


® 


MasterCard 


1050-E Pioneer Way, Dept. E, El Cajon, CA 92020 


L— 


The Hidden Chessmen 


Dear Editor: 
| have received several requests to 

convert The Hidden Chessmen (SYNC 
1:6) to use on a ZX81. Presently, I have 
an 8K ROM in my ZX80 and a 16K RAM 
pack. The following changes were needed 
to get the program running: 

1 LET B=1+INT(8*RND) 

2 LET C=1+INT(8*RND) 

3 LET K=1+INT(8*RND) 

4 LET L=1+INT(8*RND) 

6 LET R=1+INT(8*RND) 

7 LET S=1+INT(8*RND) 

44 LET X=INT(Q/10) 

50 LET Q—PEEK 16396+ 256* 
PEEK 16397+2*Х-1+66*(Ү-1) 

62 IF... THEN POKE(Q+33),48 

64 IF ... THEN POKE(Q+34),55 

The program takes more than 1K RAM, 

but I think it will fit in 2K. 


Roger Haar 
19372 Holts Rd. 
Martin, OH 43445 


Ed. — Our thanks to Roger Haar for these 
changes to make the program available 


to our 8K ROM readers. a” 


OTHELLO FOR 1K 


GRAPHICS, HIGH-SKILL 
PLAYING ALGORITHM 
$7.50 (U.S.) $10.00 (NON-U.S.) 
INTELLECTUAL GAMES 
193 PEACEABLE ST. 
RIDGEFIELD, CT 06877 


WORD POOL 


The ultimate spelling program for the 
2Х80/81 For use in the home or school 
Program featuresa current list and a 
wordpool built up from previous lists 
Uses a corrective routine with graphics 
Does not simply identify right or wrong 
answers Menu options include the fol- 
lowing — 
1 Display/Change Current List 
(Password) 


2 Display Wordpool 
3 Display Change Time Limit 
(Password) 


4 Run Test— Current List 

5 Run Test— Wordpool 

6 Delete Wordpool | (Password) 
7 Identify Student 

8 Error Recall (Password) 
9 Autosave 

Suitable for all children in grades 1 thru 


8 Tested and found especially useful to 
dyslexics and those with writing difficul- 
ties 

Versions for the 2Х80. ZX80-8K ROM or 


ZX81 all with 16K memory Please state 
version required Send $15 for tape. notes 
and shipping and handling (£7 OO Inc p 
& p intheU K ) Fullrange of educational 
software available — SA E for details 
CROWN COMPUTERS (U.K.) 

9 HOLME CLOSE 
WOODBOROUGH 
NOTTINGHAM МС 14•6ЕХ 
ENGLAND. 


mi 
>< 
G 


lore the excellence of your ZX81 with a 


[ПЕГ1ОРВП 64H memory extension for $179.95 


Give your diminishing memory more byte. 


MEMOPAK 64K RAM $179.95 
The Sinclair ZX81 has revolutionized 
home computing. The MEMOPAK 64K 
RAM extends the memory of ZX81 by a 
further 56K to a full 64K. It is neither 
switched nor paged and is Directly 
Addressable. The unit is user trans- 
parent and accepts such basic com- 
mands as 10 DIM A (9000). It plugs 
directly into the back of ZX81 and does 
not inhibit the use of the printer or other 
add-on units. There is no need for an 
additional power supply or leads. 


Description of memory 
0-8K ... Sinclair ROM 
8-16K . . . This section of memory 
switches in or out in 4K blocks to leave 
space for memory mapping, holds its 
contents during cassette loads, allows 
communication between programs, and 
can be used to run assembly language 
routines. 
16-32K ... This area can be used for 
basic programs and assembly language 
routines. 
32-64K . . . 32K of RAM memory for 
basic variables and large arrays. With 
the MEMOPAK 64K extension the ZX81 
is transformed into a powerful com- 
puter, suitable for business, leisure and 
educationai use, at a fraction of the cost 
of comparable systems. 


Memory Extention Specialists 


Memotech Corporation 
7550 West Yale Ave., Suite 220 
Denver, Colorado 80227 

Ph.(303) 986 -0016 


MEMOPAK 16K RAM $79.95 
With the addition of MEMOPAK 16K, 
your ZX81 will have a full 16K of Di- 
rectly Addressable RAM. It is neither 
switched nor paged and enables you to 
execute longer and more sophisticated 
programs and to hold an extended data 
base. 


The 16K and 64K Memopaks come in 
attractive, custom-designed and engi- 
neered cases which fit snugly on to the 
back of the ZX81 giving a firm connec- 
tion. 


Free service on your MEMOPAK 
Within the first six months, should any- 
thing go wrong with your MEMOPAK, 
return it to us and we will repair or 
replace it free of charge. 


— — — — — ———— — 
Intemotech Corp. 7550 W. Yale Ave. Suite 220 Denver, Colo. 802 


Try MEMOPAK with no obligation 
You can use our MEMOPAK in your 
home without obligation. After 10 days 
if you are not completely satisfied, 
simply return it for a full refund. 


Coming soon ..... 
A complete range of ZX81 plug-in 
peripherals: 


MEMOTECH Hi-Res Graphics 
MEMOTECH Digitising Tablets 
RS232 Interface 

Centronic Interface and 
Software Drivers 


All these products are designed to fit 
"piggy-back" fashion on to each other 
and use the ZX81 power supply. 


Further information forthcoming. 


Suite 220 Denver, Colo. 8 7l 


| Yes! | would like to try the Memopak. | understand that if I’m not complete satisfied, 


| can return it in 10 days for a full refund. 


| [] Check 
| [] Visa 
[] MC 


| Name 


| Street 


| City 


Memopak 64k RAM $ 179.95 


Memopak 16k RAM 


Shipping and Handling |$ 4.95 | — — |s 495 | 
|ae.mo[ 1 


Price t Qty. Amount 


зз» [| 


+ U.S. Dollars 


sync rings. 


Paul Grosjean 


Timex Sinclair 1000 


The Timex Computer Corporation will 
enter the personal computer market with 
the Timex Sinclair 1000. Sales will begin 
in July through the more than 100,000 
Timex retail outlets, including computer 
stores, department stores and chains, 
consumer electronics, jewelry, and drug 
stores. This step is the result of an agree- 
ment between Timex and Sinclair Research 
Ltd. for Timex to market computers using 
Sinclair technical expertise. Sinclair's mail 
order sales of the ZX81 will be phased 
out as Timex begins its marketing program. 
The announcement of the Timex entry 
into this new field and of the agreement 
with Sinclair was made by Daniel D. Ross, 
Vice President of Timex Computer Cor- 
poration, an affiliate of Timex Corporation, 
in New York on April 20. 

The Timex Sinclair 1000 is basically 
the Sinclair ZX81, which Timex has already 
been manufacturing in Dundee, Scotland, 
but with two major differences. First, the 
new machine will have 2K RAM instead 
of the current 1K on the ZX81. Second, 
the new machine will sell for a suggested 
retail price of $99.95 instead of the $149.95 
for the ZX81. Also featured will be an 
instruction manual especially written for 
the first time computer user with step by 
step instruction and a course in funda- 
mental programming. 

Peripherals for the Timex Sinclair 1000 
will also be sold by Timex along with the 
basic machine. The first one available is 
the 16K RAM expansion module for $49.95 
(Sinclair's current 16K RAM is $99.95). 
In the fourth quarter of 1982 a printer 
and a telephone modem are expected to 
go on sale for $99.95 each. The modem 
will offer a significant enhancement for 
many users and will feature: 300 BAUD, 
standard Bell Telephone jack attachments, 
and auto-dial capability. It will give a direct 
tie-in with large computer data services. 

Timex plans to supplement the hardware 
offerings with a range of software, including 
business, personal financial management, 
education, and entertainment. The price 
range of the programs is expected to be 
from $9.95 to $19.95. 

The marketing program will aim at the 
first-time computer buyer, the educational 
market, and computer buffs. The potential 
market for personal computers is estimated 
at over 90,000,000 customers. In addition 


8 


to instructional displays in the retail outlets, 
Timex plans to support the retailers with 
an extensive service network, a 90-day 
guarantee, and a national ad campaign 
beginning in August. 


SYNC Coverage 

SYNC will expand its coverage of the 
Sinclair type computers by adding the 
Timex Sinclair 1000 to the list. We will 
continue to help you get more out of your 
computer by providing instruction, enter- 
tainment and product information. 


Do You Want to... 


Advertise in SYNC? 

Contact Jim Beloff, SYNC Advertising 
Sales Manager, Ziff-Davis Publishing Co., 
One Park Ave.. New York. NY 10016; 
phone: (212) 725-4216. Jim now handles 
all aspects of advertising in SYNC. He 
will be glad not only to supply you with 
all information about ad rates, specifica- 
tions time schedules, and copy submission 
but also to answer any questions you may 
have about "getting in SYNC." 


Be listed in the Resources Column? 

Send a brief announcement of your 
new product or service or users group 
similar to the ones you have already seen 
in the Resources Column to "SYNC 
Resources." There is no charge for a one 
time listing. Repeat listings may be made 
at our classified rate which goes by the 
inch. Be sure to include the name of your 
product, brief details about it, and exact 
details on how readers may order. 

Send to: SYNC Magazine. 39 E. Hanover 
Ave., Morris Plains. NJ 07950. 


Write for SYNC? 

In our Jan/Feb 1982 issue we ran an 
article "Writing for SYNC." If you want 
to submit an article to SYNC and did not 
get this issue, send a self-addressed stamped 
envelope to the managing editor for a 
copy of the article. 

If you are planning a rather lengthy 
article, it would be best to check whether 
we would be interested in the topic before 
you put the work into writing it up. Just 
drop a note with a brief outline or summary 


of what you have in mind to the managing 
editor. It is not unusual for us to receive 
several articles or programs on similar 
topics within a matter of a few weeks of 
each other. 

Again we want to emphasize that manu- 
scripts must be typed and double spaced. 
If you are submitting a printout of your 
article. please set vour printer on double 
space. Program listings. however. should 
be single spaced and should show the 
lines just as thev are on the computer 
screen. А camera ready program listing 
adds significantly to your article. When 
printers are available. printouts will be 
preferred. Long programs should also be 
submitted on tape. 

If you are submitting a program which 
Is not a direct printout from your ZX80/81 
computer, please enter your program from 
your listing before you send it to us. 

Send to: SYNC Magazine, 39 E. Hanover 
Ave., Morris Plains. NJ 07950. 


Order products from our advertisers? 

1) Allow sufficient time for an order to 
be processed. shipped. and delivered. 
Understandably ZX80/81 users are eager 
to get their orders. but patience must be 
urged. Two to three weeks is simply not 
enough turnaround time in most cases. 
especially if the supplier waits for a check 
to clear. 

2) If you want to order internationally. 
you can pay in the following ways: a) a 
personal check (remember that a bank 
only accepts a check for collection; when 
you get your money immediately the bank 
is really giving you the money from your 
own account and will deduct that amount 
if the check bounces; the check must 
clear before it is actually credited; so 
your supplier may wait to process your 
order until the check clears); b) a bank 
draft (such as when you make a withdrawal 
from а savings account); c) a "foreign 
draft" in the money of the country you 
are ordering from (the charge in our area 
is about $10); d) an international money 
order (in dollars) purchased at your bank 


SYNC Magazine 


usually for a flat fee (in our area about 
51.25 regardless of the amount); e) an 
international money order purchased at 
the Post Office (the rates vary according 
to the amount of the money order and 
the country to which it goes; for England 
the cost is $1.30 for up to $25 and $1.50 
for $25-50). 

3) Remember that banks charge the 
depositor for handling a foreign check: in 
our area the charge can be up to $3; the 
same holds for foreign banks handling 
U.S. checks. Needless to say. such a charge 
can eat up a sellers profit on a small 
order. Some will include it in either a 
handling charge or higher prices) 

4) A check with local customs reveals 
that in general there is no duty on software 
but that there might be on hardware. To 
be on the safe side. check with your local 
customs office before ordering. especially 
if the cost or quantity of items is substantial. 
If there is a customs assessment. the Post 
Office will notify you that you have a 
package with the amount due which 
includes a charge of about $2 by the Post 
Office for handling the transaction. 


64K 


Screen Display 
Area 


48K 


More I/O and 
Memory Blocks 


Software Switches 


I/O Space 


QUICKSILVA 
Hi-res memory 


User RAM 


16K 


Graphics and 

Extended Basic 

encarta 
D.O.S. and 


8K Network 


Basic 
OK 


May/June 1982 


Ask technical questions about your 
ZX80/81? 

Write a letter to the editor stating your 
problem or question. We will refer the 
letter to some of our authors who have 
agreed to answer questions. (Please do 
not call SYNC because the people who 
can answer the questions are not at our 
offices.) We will print the question and 
answer whenever possible. The chances 
are good that you are not the only one 
who has the question. 


Form a users group or publicize one? 
Send details to our Resources Column. 


Developing a 


Memory Map Consensus 


Nick Lambert of Quicksilva has proposed 
that suppliers for the Sinclair computers 
reach a consensus on some kind of memory 
map to avoid "a whole heap of problems" 
to everyone's benefit. He has proposed 
the following ZX Computer Memory Map 
on a provisional basis for discussion. The 
comments of suppliers are welcome and 
should be sent to Nick Lambert. Quicksilva. 
95 Upper Brown Hill Road. Maybush. 
Southampton. Hampshire. U.K. "n 


ZX Computer Memory Map 


User RAM (Screen routine only) 


Read/write only memory 


User RAM 


Most people are. or will be. using a 16K RAM pack of some kind so really this 
block should be left completely for this purpose. No ROM or I/O from this 


block. 


ROMs (for add-on boards) 


The user RAM appears in this block where the screen display routines and 
hardware use it to output the display. D-FILE can appear anywhere in this block 
so it really cannot be used for any other purpose. 


Due to the internal hardware of the computer no opcode fetches can be made 
from this block. So you cannot run any machine code from here. You can read 
and write to memory though so it is fine for data storage. Also it seems to be the 
best place to do Input/Output from. Unless there is an extremely good reason 
not to. Quicksilva intend to put the 6K of memory needed for our Hi-res board 
starting at 32K. This will enable us to make the Hi-res software run significantly 
faster. Other areas within this block are open to debate. 


SYNC Program Listings 


Readers should note the following 
conventions used in the program listings 
in this issue: 


Z — The number symbol is used in 
PRINT statements to show necessary 
spaces. 


"A"— The underline is used in PRINT 
statements to indicate graphics. Press the 
key designated in whatever way your 
machine requires to get the graphic. 

INPUT — In PRINT statements when 
a word or token is underlined enter the 
word from the keyboard rather than type | 
it in letter by letter. This is a memory 
saving technique. 

After typing in a program line, you 
must put the line into your program. On 
the ZX80 and ZX81 with 8K ROM this is 
done by hitting the NEWLINE key. On 
the ZX81 the same thing is done by hitting 
ENTER. The words are used interchange- 
ably. 

A number followed by a b is binary; a 
number followed by h is hex. 


This 8K block is the only area left. apart from user RAM space from which 
you can do an opcode fetch. For this reason this block should be saved for extra 
ROMs. Actual functions of the 2K areas in this block can be swapped around of 
course. However. if two companies are doing the same product which requires 
some of this ROM space. to avoid wasting valuable space. it would be sensible 
for both to use the same 2K area. So here it would be advisable to settle for a 
definite layout. i.e.. 8K to 10K for Disc Operating Systems. etc. 


ROM (Sinclair Basic ROM) 


А 

/ 

LP 
Эф, 


1К RAM 
8K ROM 


just FOr FLIIT ———S 


In general $ YNC prefers articles in some 
depth so that we can help you develop 
your programming skills and get more 
out of your computer. However, a number 
of readers have shared with us some of 
their favorite short programs which are 
too long for our "Try This" column and 
too short for the kind of tutorial that we 
often use. Some of these programs illustrate 
a point or demonstrate a technique that 
the reader has found helpful. Others do 
something the reader has found interesting. 
So we have collected a number of these 
short programs "Just for Fun." If you learn 
something. great. If you have some fun, 
great. If you have some that you want to 
share, send them in. We will have a "Just 
for Fun" column as often as we have the 
material. 


Renumbering by a USR 
Routine 


Jon Passler 
Enter the following program: 
1 REM  15£58RNDYVE7YTAB 
"RND7Y COS P7P77777TAB" RND 
2 REM 
3 LET L=USR 16514 
4 STOP 


See "SYNC Notes" for the conventions 
used here. In addition, the overline indi- 
cates inverse characters. 

Then in the immediate mode (i.e.. 
without a line number) enter 

POKE 16531.112 

POKE 16533.113 
RUN the program and note the changes 
in the listing. Then add five more of the 
graphics on the 7 key after the five already 
given in 1 REM and run the program 
again. Then in the immediate mode: 

POKE 16515.10 
and RUN again. 


12 


Delete all the lines except 1 REM and 
save it for future use. It will SAVE and 
LOAD more quickly without the 16K RAM 
pack attached. The subroutine can be 
called in the immediate mode by 

LET L=USR 16514 


Note: 

LD BCS 
LD HL.16525 
LD A.59 
ADD A.A 

LOOP INC HL 
CP (HL) 
JPNZ, LOOP 
INC HL 
CP (HL) 
RET Z 
LD (HL).B 
INC HL 
LD (НІС 
INC BC 
INC BC 
INC BC 
INC BC 
INC BC 
JPNZ, LOOP 


Jon Passler, 344 Cabot St.. Beverly. MA 01915. 


Sweeper 
Bernard Bush 


Some uses for UNPLOT. TAB, and 
SCROLL that are not given directly in 
the manual can be extremely useful: 

1) UNPLOT can be used in a FOR 
NEXT LOOP to keep the print position 
on a given line. 

2) There are two PLOT (or UNPLOT) 
positions for a given line. UNPLOT 0.42 
or UNPLOT 0.43 will both work for the 
top line. 

3) SCROLL can also be followed by 
UNPLOT to keep the print position on a 
given line. Without it SCROLL moves the 
print position to the bottom left side of 
the screen. 


4) SCROLL can be used in a loop to 
SCROLL several lines. E.g.. 
10 FOR J=1 TO 10 
20 SCROLL 
30 NEXT J 
The following programs show some uses 
for UNPLOT and TAB. 


SWEEPER 
28 LET A=INT (RND#3) +1 
= LET E INT (RNO Se) +5 
за IF 


ao GOSUB 19 

110 NEXT E 

120 FOR м=З@ TO 1 STEP -1 
139 PRINT ТАВ J;"/7GoO " 

140 GOSUB 190 

179 NEXT J 

150 GOTO 160 

190 IF B-1 THEN UNPLOT @,42 
20@ IF A=2 THEN UNPLOT @,4@ 
210 IF R-3 THEN UNPLOT @,за 
228 RETURN 


R +1 
а>=1ё THEN TLS 
RINT TAB d; “HELLO” 


FOR K=3 TO ie 

PRINT TRB қ; бз" 

NEXT К 

IF A@>=20 THEN GOSUB 208 
бота = 

E Bie 


RETURN 


Cs Ca £2 C3 UL CD CS ер C3 CO 2 fa C iy 


Pape SOLCH e С La TO pa e 


ШЧ 


Bernard Bush. Rt. 2. Manslield. MO 65704. 


Ed, the Head 


Basil Wentworth 


In lines 180 to 210 an action technique 
is illustrated which might be useful in a 
number of programs, for example. a moving 
target, a flashing signal, alternating graphics 
for rotary motion. 


TO i4 
=1 
Ж + 


ЖЕ” 


к) 


HI 
^ 


E 


uu CC 


Gom Sm ку DA у тЫ К DA бу К) 0 9 9 Р 
z 
», 
-j 
musco o "m 


БОС ЫЛ > CON II СЛ {> rng 
(00 om mmc 


fO f ea e ft de e ER E EL ә 


IT тю 


OI Л! 
94 


|^ 


Basil Wentworth, 1413 Elliston Dr.. Bloomington. 
IN 47401. a” 


SYNC Magazine 


Ld 


CAI peripherals allow you to expand your Sinclair 
or MicroAce personal computer, enabling it to perform 
like a main frame or host computer...a true stand alone system! 

The CAI/O board, along with the tape, printer and phone 
modem, can put you in touch with the rapidly expanding world of 
computer communications. Shake hands with the billions of bytes of 
information, entertainment and technical knowledge coming on 
stream. Expand your horizons with quality peripherals designed specif- 
ically for Sinclair personal computers. .. only from CAI. 


CAI/O Board? 


The CAI/O Board is the main interface that allows your personal 
computer to communicate with the outside world as well as other 
peripherals. No soldering or computer modification is required to 
install the CAI/O board. Just plug it into the Sinclair's expansion 
port. The CAI/O board features: 

Serial RS-232 Input/Output Port—RS-232 with hand shak- 
ing enables your Sinclair to communicate with other computers, 
printers, and serial devices. Simple program commands allow you to 
set baud rates from 110 to 9600. It's compatible with modems that 
allow you to interface your ZX80-81 with computer networks, such as 
THE SOURCES®. Full details are available from CAI. The serial port 
can also be configured to operate current loop devices, such as tele- 
types, etc. 

Parallel I/O (3 Ports)— You can design circuits to light lamps, 
control household appliances, power relays, run parallel printers, and 
A/D converters. 

Printer Port, Tape Port, and Memory Expansion Port— 
These ports are on the CAI/O board to serve as the main interface 
ports for other peripherals. 


$ ri 9 95 When Purchased $ 69 95 When Purchased With 


Separately Additional CAI Peripherals 


WIDGIPRINT ? Printer 

The WIDGIPRINT is a low cost, dependable 32 column thermal 
printer that prints Sinclair's alpha-numerics, graphics, and inverse 
characters on 3.2" wide paper (readily available through CAI at $1.95 
per 137' roll). The printer prints 190 words per minute, black on 
white (so it's easy to copy). It prints in three different program modes: 

List—Lists the present program in memory. 

Print— Will print script, variables, string variables, etc. from 
within a program. 

Screen Dump-— This print mode allows present information on 


the TV screen to be dumped to the printer. $99 95 


" 


WIDGITAPE® 
The WIDGITAPE system is a 

stringy-floppy mass storage device that provides 
much of the versatility of a floppy disk at a fraction of the 
cost! The WIDGITAPE uses standard, readily available endless loop 
cassette tapes (available from CAI at $2.95 per tape—tape lengths 
from 30 seconds to 6 minutes). Each minute of tape allows you to store 
up to 5.5K. WIDGITAPE functions are computer controlled. There’s 
no need to operate the tape system manually. Program functions 
include: 

File Directory — WIDGITAPE has its own file directory which 
can be viewed on the screen. | 

Read/Write—WIDGITAPE has the ability to read or write 
data files during a program run. 

File Extending and Modifying— Variables can be brought into 
memory from the WIDGITAPE while a program is running and then 
summed with other variables already in memory. These new variables 
can then be written back into memory, printed, viewed $99 95 


on the screen . .. or all three! 


Additional Peripherals From CAI 
$ 1 2995 Phone Modem $ 1 1 995 64К Метогу 


Expansion 
Programs Available from CAI 
$1495 kons 7955. a, $995 Mh, 995: 


Finance Tutorial Bang 


CAI Peripherals nd а 


АП CAI peripherals come with complete instruction manuals, 
schematics, and a 30 day unconditional replacement warranty. Prices 
are subject to change without notice. 


СЕСЕ ТЕСТЕ 


Orders accepted by phone or mail. Quantit Description Unit Price Total 

For mail orders, send check, money [ — ^ |CAL/OBeard | (SeePrice) | | 

order, VISA or MASTERCARD [| — .  [WIDGIPRINT| $9995 | | 

numbers. Foreign orders must be |  — [WwiDGITAPE | $9995 | | 

made in U.S. currency. O QOIHER. | 1 
[SUBTOTAL] — | |] Z .J— | |. 


б 


Shipping and Handling 
4% Sales Tax (Michigan Residents Only) 
TOTAL 


CAI Instruments, Inc. SHIPPING AND HANDLING CHARGES 
P.O. Box 2032 


Midland, MI 48640 


Phone: (317)835.6]45. MasterCard Visa 
Office Hours: Exp. Date 
9:00 a.m. — 4:30 p.m. Name 
Evening Hours (Technical 
Information) Address 
6:00 p.m.—8:30 p.m. ||: UNE. 


Within U.S. $5.00 Outside U.S. — F.O.B. Midland, MI 


8K ROM 


Bercenptions 


David B. Ornstein 


The ZX81 Parser 
and User-Defined 
Commands 


In this issue we begin a series of articles 
which will describe parsing, the ZX81’s 
parser, and user-defined commands. Par- 
sing is the process used by a computer 
system to extract the syntactic and semantic 
elements of a user’s program. These 
elements, once isolated, are either acted 
upon directly or stored in a data structure 
(or two) for later examination. In the Z X81, 
and all other computers, it is the parser 
that is responsible for a) syntax checking, 
and b) execution of a program. It is one 
of the most important elements of any 
system designed to execute a language. 


The Parsing Steps 

When a parser is called to look at a line 
or a series of lines, it must perform many 
steps. An overview of these is as follows: 

A) Let IP be a pointer to the first 
character to be looked-at. The character 
is the first one in the line to be syntax- 
checked/executed. 

B) Let CCHAR be the character stored 
at location IP. 

C) Process CCHAR according to the 
current context. 

D) Increment IP. 

E) If IP does not point to an End-Of- 
Line (EOL) character, go back to step B. 

Let us now take a look at these steps. 
Before entry into the "SCANNING-LOOP," 
which ranges from steps B to E, inclusive, 
the parser sets up a pointer to the first 
character to be looked-at. This pointer, 
called the Interpreter Pointer, is given 
the label IP. Step B fetches the next 
character to be looked-at. The next step, 


14 


C, is the most important one and will be 
discussed further in the next issue of 
SYNC. 

Step D increments the IP. In most 
systems line elements are stored in con- 
tiguous memory locations, so the action 
performed in step D is actually an incre- 
ment, i.e., IP=IP+1. To state the operation 
more correctly, we should say: D) Point 
IP to the next character to be interpreted. 
Step E is very straight forward. It is, 
conceptually, a test to see if we have 
looked through the whole line yet. It is 
implemented by a compare or a series of 
compares with the set of legal line-end 
markers. 


RST 0018  GET-CH: LD HL, (CH-ADD) 
LD A, HL) 
OO1C  TEST-SF: AND à 
КЕТ М7 


МОР 
NOF 

CALL CH-ADD+1 
JR TEST-SF 


RST 0020  NEXT-CH: 


be called by the code responsible for line 
execution. These routines are labeled 
“GET-CURRENT-CHARACTER” and 
“GET-NEXT-CHARACTER.” They are 
called by way of the RST (ReSTart) 
instructions: RST 18 and RST 20. The 
RST instruction is theoretically a CALL 
instruction, but it has two advantages. 


The first is that it is a single byte long. 
The address of the routine to CALL is 
implicitly specified in the instruction byte 
itself. saving the two bytes. required by a 
CALL, which specify the subroutine ad- 
dress. With an RST. the address of the 
subroutine is calculated by taking the lowest 
three bits from the instruction and multi- 
plying them by eight. This yields: RST 0, 
RST 98, RST 10, RST 18, RST 20... RST 
38 (all the addresses are in hex). RSTs are 
used for the most commonly needed/ac- 
cessed routines. 


Listing 1: The RST 18 and RST 20 Routines. 


:; The "GET-CURRENT-CHAR" routine. 
; Get the char into А. 
: This instruction will test to see if 


character in А is a space (i.e., 0). 
It will set Z if it is a space. 


It will set NZ if it is not. 
; Return if it is not a space. 
; Fadding. 


; Fadding. 


Increment CH-ADD. 


ч Go back to OO1C. 


Listing 2: The CH-ADD +1 Routine. 


0049 CHADD+1: LD HL, (CH-ADD) 
OQO4QC | CURSOR-SO: INC HL 
QOA4D TEMF-FTR: LD (CH-ADD) ,HL 
LD A, (HL) 
CF CURSOR 
RET NZ 


JR CURSOR-SO 


; the "Bump CH-ADD" routine. 

; bump it. 

; STore it. 

; Get the char. 

; Compare it with CURSOR (7FHh). 


If it is not a CURSOR, then return 
If it is, then go back, and get 
another character to check. 


The RST 18 and RST 20 Instructions 
The ZX81’s parser follows this basic 
outline, but it is structured a bit differently. 
The process used by the ZX81 to “get” 
characters involves two interconnected 
routines that are subroutines which can 


The second advantage of using RSTs 
as opposed to CALLs is that the RST 
instruction is faster. This stems from the 
fact that the RST does not have to make 
two extra memory accesses to find out 
where to send the processor since this 


SYNC Magazine 


ES 


address is specified in the instruction 
itself. 

The RST 18 and RST 20 routines are 
shown in Listing 1. They use an auxiliary 
routine called СН-Арр +1, shown in 
Listing 2, to move CH-ADD along to the 
next character. The operation performed 
by this routine is basically analogous to 
the operation performed in step D above. 
It is also responsible for a secondary task, 
namely, skipping any CURSOR characters. 
The CH-ADD pointer is a system variable 
and is used as the Interpreter Pointer in 
the 8К ROM. 

In reviewing the routines (RST 18 and 
RST 20), we must note that they simply 
refuse to return a space character. This is 
why you can put spaces almost anywhere 
in a program without having them affect 
the execution of your program. The only 
restriction on the space-insertion rule is 
that all spaces inside quotation marks, 
i.e., valid string constants, are significant. 
The system facilitates this by having a 
separate routine to parse string constants. 

These RSTs provide the base of the 
parser. Next time I will dive head on into 
the main parser routines. 


Bibliography 

Two bibliographic references are impor- 
tant for this article: 

The ZX61 Monitor Listing, Part A by 
Ian Logan. Melbourne House, 1981. 

Writing Interactive Compilers and In- 
terpreters by P. J. Brown. New York: 
John Wiley & Sons. 1979. 

I wish to express special thanks to Dr. 
Logan for writing The ZXG$1 Monitor 
Listing. The labels used in this article are 
from this work. 


May/June 1982 


More on the 16K 
RAM Pack Schematic 


I have received many calls and letters 
from people who want to build the RAM 
expansion on their own. The biggest 
problem with this is that some of the 
components listed in the power supply 
section are U.K. parts and are not available 
in the U.S. I have not been able to find 
cross-references for several, including the 
ZTX750 transistor. My suggestion to those 
who want to build the memory expansion 
is that you use the +5-volt-only version of 
the 4116 dynamic memory. This way the 
power converter section, and all the 
headaches that go along with it, can be 
eliminated. 

As noted in SYNC 2:1, the 16K RAM 
pack schematic published in SYNC 1:5 
needed some corrections and clarifications. 
A further correction should be made: on 
each 4116 (ICs 8-15) two pin 7’s are shown. 
The one going to -5 volts should be shown 
as pin number 1. 


Addenda to 
“The ZX80/81 Video 
Display System” 


In the discussion of “The ZX80/81 Video 
Display System” in SYNC 2:1, one further 
aspect of the Display System (more spe- 
cifically, the Display File) must be included. 
As you will note in the column, each of 
the 24 records in the display file is termin- 
ated by a NEWLINE (ENTER) character 
(76h). This is interpreted as a HALT 
instruction by the Z80 microprocessor. If 
a line in the display file is shorter than 32 
characters, the system will reach and read 
the suffix NEWLINE. 


Meanwhile, the NOP-Forcing logic has 
been happily forcing NOPs onto the data 
bus, overriding whatever happened to be 
coming from RAM. (Whenever the Z80 
is in the middle of a display sequence and 
D6 from the RAM is low, the Force logic 
is enabled.) Whenever a character is read 
from the RAM, whose D6 bit is low, the 
NOP-Force logic is disabled, and the 
instruction (byte) read will be allowed to 
pass through to the Z80 for execution. 

In the case of the record-terminating 
HALT instruction, this is the desired effect. 
The 280 will enter a HALT loop (NOPs), 
not exiting from this loop until the R 
(Refresh) register times out and interrupts 
the system. Herein lies the problem with 
placing some special characters (those with 
D6 high)—usually machine code—into 
REM statements. If the character has the 
"killer-bit" set, it will pass through the 
NOP-Force logic and enter the Z80 for 
execution. This can have disasterous 
results. 

Until next time, same relativistic time 
period, same non-Euclidian universe. Mg 


** Forthe 1k ZX-81 


M «FULLY INTERACTIVE GRAPHICS! 
JM] «DOZENS OF PLAY LEVELS! X 
" {ЛД «FOR 1, 2, OR MORE! 
7.75] -HOURS OF FUN! P 
“Ih Sc] ENTIRELY IN BASIC! x 


PROGRAM WITH COMPLETE 
INSTRUCTIONS AND 
DOCUMENTATION—ONLY $3.00 


ABOVE WITH CASSETTE—$5.00 


ТТ Flint 
Data Systems 


146-22 Delaware Avenue 
Flushing, New York 11355 


CUSTOM ZX 
EDGE-BD. 
CONNECTOR 
s.t. only $7.95 


8K ROM 
IK RAM 


An Introduction to 
Expression Evaluation 


In the Sinclair 8К ROM program of the 
ZX80/81 the "expression evaluator” is to 
be found at OF55-111Bh (improved 8K 
КОМ) and forms an essential part of the 
program. A study of the fundamental parts 
of the "expression evaluator" can be very 
useful as it enables Basic programmers to 
understand many of the limitations and 
quirks of the Sinclair Basic. 


Some Definitions 

First we must make some definitions: 

Expression. An expression is any com- 
bination of numbers, variables, strings, 
functions, and operators that can be 
combined to form the operand of a com- 
mand. For example: 

1) 2—a simple number. 

2) 2*A —a number and a variable linked 
by a binary operator. 

3) CHR$ 32— a function and a number. 

4) CHRS(T+A-26*INT ((T+A)+38) 
—my favorite complex expression. | 

Function. Function includes the expected 
keywords ABS, СНК, INT, etc., but do 
not ignore the two special functions NOT 
and -. NOT is a function that gives an 
"opposite logical result," i.e., NOT 3 gives 
0 as the number 3 is logically "true." When 
- is used as a "leading minus,” it gives an 
"opposite numeric result," i.e., -3 should 
be taken аѕ“ + "subjected to the function-. 

Binary operators. In the 8&K ROM 
program the following binary operators 
are allowed: **, *,/, +, -, =,<=,›=‹ 5 
AND, OR. In each case a binary operator 
is required to be between two operands, 
which may in turn be "subexpressions" in 
their own right. 

Unary operators. There are three special 
operators in this group: RND, PI, and 
INKEY'S. In one sense they are not oper- 
ators at all and they can, if preferred, be 
considered as "fixed variables." 


Dr. lan S. Logan, 24 Nurses Lane, Skellingthorpe, 
Lincoln LN6 OTT, U.K. 


16 


lan Logan 


Priority. All of the binary operators 
and functions have associated with them 
a "priority" that is used to determine the 
"order of the operations." Hence, 2 4*2 
is 14 rather than 18 since multiplication 
has the priority value of 8 and addition a 
value of 6. 

Last value. Last value is, perhaps, a 
difficult point to understand but the Sinclair 
8K ROM program evaluates expressions 
to produce a "last value” on the “calculator 
stack." For a numeric result the "last value” 
is a 5 byte floating-point number and for 
a string result a set of 5 parameters that 
define the string. 


The Actual “Expression Evaluator” 

The object of the "evaluator" is to 
produce a single "last value" that corres- 
ponds to the expression that it has been 
given. For instance, if the expression is a 
simple one such as 2, then the "last value" 
produced will be the number 2 in binary 
floating-point form, and it will be the 
topmost number on the calculator stack. 
However, if the expression is 2 4*3, then 
the "last value" is to be 14 and this has to 
be "evaluated" by "scanning" the expression 
from left to right and saving the part- 
answers as they occur and the operations 
to be performed until the point is reached 
when the "saved" answers and operations 
have to be used. 


A Simple Evaluation 

A Basic line such as 10 PRINT 2 appears 
to be a very simple line but its interpretation 
by the 8K ROM program involves an almost 
unbelievable amount of work. Initially the 
interpreter has to locate line 10, then 
scan the line for its first command and 
jump to that command's routine. In this 
example, the jump is to the PRINT 
COMMAND ROUTINE at OACFh. In this 


routine a call is made to the "expression 
evaluator" so as to create a "last value" 
from the operand of the PRINT command, 
i.e., the 2, and then a call is made to 
PRINT-STK, the routine that prints the 
correct representation of the "last value" 
on the TV display. A check is then made 
to see if the line is finished, which in this 
case it is, before the next line is 
considered. 

It can be seen in the above description 
that the use of the "expression evaluator" 
is essential and an outline view of this 
routine will now be given. 

1) Put a zero on the machine stack as a 
"starting priority marker." 

2) See if the first character of the 
expression is a "unary operator." No. 

3) Is the character alphanumeric? Yes. 
So jump accordingly. 

4) Is it a digit? Yes. So jump accord- 
ingly. 

5) Transfer the invisible binary repre- 
sentation of the number 2 to the calculator 
stack as a "last value" (remember the line 
10 PRINT 2 has its binary representation 
in 6 bytes between the 2 and the 
NEWLINE). 

6) Fetch the next character in the line. 
It isa NEWLINE. 

7) Jump forward to the “evaluation loop” 
if it is not an operator. At this point the 
“last operation” code is zero. 

8) In the “loop” an exit is made as the 
“last operation” code is the same as the 
“starting priority marker.” Both are zero. 

Note the successful outcome! The “last 
value” on the calculator stack is the floating- 
point representation of 2 as was required. 


SYNC Magazine 


2- 


The Sinclair ZX-81 is innovative and powerful. Now 
there's a magazine to help you get the most out of it. 


Thousands of smart consumers have 
picked the Sinclair ZX-81 as their personal 
computer. And, unlike many of today's bar- 
gains, this one can really give you your 
money's worth. Or it can turn into nothing but 
an expensive calculator. A Sinclair owner can 
putter along in first gear, missing the power 
and potential of the ZX-81, or he can shift into 
high, pushing the ZX-81 beyond imaginable 
limits. That's why thousands of smart con- 
sumers have picked SYNC as their computer 
magazine. 


Right on Target 


The ZX-81 is unique. There is nothing like it, 
nothing that comes close to packing so much 
power and versatility into one small package. 
Some computer magazines might publish one 
or two articles about the Sinclair each year, 
some never mention it. SYNC covers only the 
ZX-81 and its predecessor, the ZX-80. If an 
article doesn't apply to the Sinclair, if a game 
doesn't work on the Sinclair, you won't see it in 
SYNC. Our staff and contributors are Sinclair 
owners. Some started out as experts. Others 
started as readers and became experts. 

How can a whole magazine find enough 
material about one small computer? By cover- 
ing everything from hardware to software, by 
offering both new applications and old tricks 
with a new twist. Did you know that the Sin- 
clair can generate music? Our readers found 
that out when we published a program and 
article showing how to do it, and explaining 
why it works. Do you know where to buy soft- 
ware, books, or peripherals for the ZX-81? We 
list resources in every issue, along with ad- 
dresses for user's groups so you can get in 
touch with other Sinclair owners. But knowing 
where to buy is not enough by a long shot. And 
that's where we can really help you out. 


Hard-Hitting Evaluations 


As a Sinclair owner, you know the value of a 
dollar. But it isn't always easy to know the 
value of all the extras on the market. Face it, 
some programs are great, some aren't worth 
the tape they're stored on. We receive every 
new product for the Sinclair as soon as it is 
available, often months before it is on the 
market. And those products are reviewed and 
tested with a very critical eye. If an adver- 


tiser doesn't care for this sort of honesty, we 
don't care for his business. We haven't gotten 
where we are by patting backs, we've gotten 
there by giving the Sinclair owner the informa- 
tion he needs. But there's more to SYNC than 
just reviews. 


Applications and Explanations 


The ZX-81 comes with a very powerful 
Basic language. But power doesn't imply diffi- 
culty. We show you how to get the most from 
your computer, whether you want to write a 
game or keep track of a mailing list. And we 
don't stop with Basic. The Sinclair can be 
programmed in machine language. For the 
newcomer, we have articles explaining ma- 
chine language from the ground up. For the 
old pro (and anyone who has been reading 
SYNC for a while will soon find himself in this 
category) we have sophisticated routines for 
animation, data handling, and every other 
aspect of programming. 


Don't run 
your computer 
in first gear. 


Topping if off, hardware articles cover every- 
thing from attaching a full-size keyboard to 
adding a tape monitor. Whether you are inter- 
ested in software or soldering, we'll keep you 
busy. But we also know how to have fun. 


Games of Every Kind 


If you like to shoot down attacking space- 
ships, fight monsters in a dungeon, or land on 
the moon, we've got what you want. Every 
issue of SYNC is packed with games. There 
are classic computer games converted for the 
Sinclair, and new games designed specifically 
to exploit the capabilities of the ZX-81. Our 
contributors keep getting better and better, 
but that's not surprising, because the games 
come complete with tips and explanations. 
Programming tricks and special techniques 
are fully explained, so you can use them in 
your own games. We don't believe in keeping 
secrets. 


SYNC is a Creative Computing publication. 
Creative Computing is the number 1 maga- 
zine of software and applications with over 
150,000 circulation. The two most popular 
computer games books in the world, Basic 
Computer Games and More Basic Computer 
Games (combined sales over 500,000) are 
published by Creative Computing. Creative 
Computing Software manufactures over 150 
software packages for six different personal 
computers. 


| Order SYNC Today 
| and Save Money! 


[n шшш | 
Soc 

| P.O. Box 789-M 

| Morristown, N.J. 07960 


| 
| 
| 
ҮЕ { Send me SYNC for the | 
| а term checked: | 


| [ ] One year (6 issues) $12.97 —1 save 


| 19%! | 
| 0 Two years (12 issues) $22.97— | 
| | save 28%! | 
| Г] Three years (18 issues) $31.97— | 


| save 33%! | 
Savings based on full one-year sub- | 


scription price of $16. 


| 

| 

| CHECK ONE: 
| [ ] Payment enclosed. 
| П] Bill me later. 
| Mr. 

| 

| 

| 

| 


Mrs. 
Ms. 


(please print full name) 


| City 


| State Zip 


| Foreign postage: Add $3 a year for Canada. Add 
$5 a year (cash payment in U.S. currency only) 
for all other countries outside U.S. and posses- 
sions. Please allow 60 to 90 days for delivery of ; 


oec MEN | 


| 
| 
| 
| 
| 
| 
Address | | | Apt . | 
| 
| 
| 
| 
| 


The Next Stage 

Let us go through this outline view of 
the work of the expression evaluator again, 
but this time the expression is 2c 4*3— a 
seemingly innocent expression that is a 
great deal more complex than appears at 
first sight! 

1) Put the "starting priority marker" of 
zero on the machine stack. 

2) Perform the steps outlined above in 
2-5 that result in a "last value" of "2" 
going onto the calculator stack. 

3) Fetch the next character: a +. 

4) This time it is an operator so prepare 
the "literal." OF, and the priority of 06 for 
the operation of addition. 

5) Enter the "evaluation loop" and as 
the "present priority" is greater than the 
"last priority" (that zero) put the "present 
literal" and "present priority" onto the 
machine stack on top of the "last literal 
and priority" (that zero again). 

6) Now fetch the next character, the 4, 
and go back to step 2 again with a different 
operand. This time a "last value" of 4 
goes on the calculator stack on top of the 
2. The "literal." 04, and the corresponding 
priority of 08 for multiplication are pre- 
pared and the "evaluation loop" entered 
once again. 


ADD ON MEMORY 
FOR ZX 


16K memory assembled and 
tested. No extra power supply 
needed. 90 day warranty on 
parts and labor. 


$49.95 POSTPAID 


Check or money order only. 
California residents add 6%. 


KB ENTERPRISES 
8211 VALDOSTA AVE. 
SAN DIEGO, CALIFORNIA 
92126 


RAM EXPANSION 


ADD ON RAM FOR ZX80; 2K INCREMENTS UP TO 
16K. COMPLETE. SCHEMATIC, PARTS LIST. 
SOURCES, AND HOW-TO FOR $3.95. APPR 
COST FOR 2K, $20 FOR THE FIRST 2K: $13.50 
FOR EACH ADDITIONAL 2K; NO ADDITIONAL 
POWER SUPPLY NEEDED. SEND $3.95 WITH 
SASE TO: 


DENNIS WEBER. BOX 742 
TROUTMANN, N.C. 28166 


18 


7) Here the “present priority” is greater 
than the “last priority,” i.e, 08 is greater 
than 06, so again the “present priority 
and literal” go onto the machine stack. 
(The evaluator has determined that 2 is 
not to be added to 4, as the 4 is followed 
by a "more binding" operator.) 

8) Now fetch the next character, the 2, 
and loop back to create a "last value" of 
3, above the 4, and the 2. 

9) Alas, the end of the expression has 
been reached. The "present operator" is 
zero because the present character is a 
NEWLINE and the "evaluator loop" is 
entered for the final time. 

10) At this point the priorities are 00, 
06, 08 and 00 whilst the calculator stack 
holds 2, 4, and 3. These stacked values 
now have to be "unstacked" and this is 
done as follows: The "present priority "of 
00 is less than the "last priority" of 08 so 
the operation of multiplication, associated 
with the "last priority." is performed 


between the top two numbers of the ` 


calculator stack. 

11) Now the priorities are 00, 06, and 
00 and the stack holds 2 and 12. As the 
"present priority" 00 is less than the last 
priority 06, the operation of addition is 
performed. 

12) Now the end has been reached. 
The priorities are 00 and 00 and, since 
there is but one value on the calculator 
stack, the required 14, the EXIT is taken. 

Although the above examples have dealt 
only with simple decimal numbers and 
binary operators the other facilities of the 
expression evaluator are managed in a 
similar manner. A variable, such as A, is 
evaluated to a "last value" and used 
accordingly. A function such as COS is 
identified and its literal and priority 
prepared, and the "operation" of COSing 
the "last value” is performed when required. 
Note that it is part of the "calculator" 
which ensures that a unary operation 
replaces a "last value" with another, and 
a binary operation replaces two values 
with a "last value." 

The "expression evaluator” also handles 
the special operators RND. РЇ, and 
INKEYS. Indeed there are no subroutines 
for these operators but merely segments 
of the "expression evaluator" deal with 
them in a "straight programming" manner. 
The addresses of the segments are (all 
improved ROM): 

RND—OF59h 
PI—OF8Ch 
INKEY$—OF9Dh 


The Priorities 

The last point we need to cover is to 
correct the ZX8/ BASIC Programming 
manual with regard to the “priorities” of 
the various operations. They are: 


Priority 
Operations and Functions Decimal. 
All functions 
(except LEADING MINUS 
and NOT) 16 
жж 10 
LEADING MINUS 9 
i 8 
- + 6 
ACT 5 
NOT 4 
AND 3 
OR 2 


Demonstration Program 

Our program this time is an exercise in 
graphics. It is quite easy to get vehicles to 
go across the screen, but it is a little more 
complicated to get them appearing in stages 
from the left and disappearing slowly at 
the right! 


Listing 1: A SYNC Delivery Van. 


19 SLOW 
20 LET A$=" 


fs ts 
ae FOR L=1 TO 15 
4@ FOR A=37 РЕИС та nest; 
w ff ы + 2 5a 
5@ PRINT AT L Sate TU ПЫЗ 


Ag fALIBE TG R469. 9865 
UT 


Program notes 

Line 20: After the " enter 32 spaces. 
type in SYNC in reverse letters (hit shift 
and 9 to get the graphics mode and then 
type in the letters), enter the graphic on 
the R key, enter 33 spaces, enter 6 reverse 
spaces (get into graphics mode and hit 
the space key 6 times), enter 32 spaces, 
the letter О, 3 spaces, the letter О, and 
33 spaces. Close with the “. 

After entering the program, hit RUN 
and ENTER and watch the results. 


Ed. — Note that Dr. Logan s Sinclair ROM 
Disassembly Parts A and Bwill provide 
major assistance. They can be obtained 


from several advertisers or directly from 
Dr. Logan. R- 


SYNC Magazine 


ZX 81 AND TIMEX-SINCLAIR 1000 OWNERS 


16K-549.95 


 64K-5149.95 


16K normally sells for $80, $90, or 
even $100. Now you can get this 
vital tool for less than HALF the of- 
ficial price. 16K transforms your ZX- 
81 or Timex-Sinclair 1000 into a 
powerful machine. Run Business, 
Education, and Games without 
running into the brick wall of “mem- 
ory full. 


64K is all the memory you'll ever 
need. In fact, its all your computer 
can handle. And at $149.95, this 
isnt just the LOWEST PRICE 
EVER, ANYWHERE for the ZX-81 
or Timex Sinclair 1000. Its the 
LOWEST PRICE FOR ANY COM- 
PUTER. : 

64K makes your computer more 
powerful than machines costing ten 
times as much. 


These Memories are On-The-Shelf. 
Just Waiting for your Order. 


You bought a breakthrough when you spent your hardearned cash for a Sinclair computer. 
The amazing power for the rock bottom price has made the Sinclair, after only a year, the best 
selling computer in history. Now, you have a chance to multiply the power of that computer 
without spending an arm and a leg. Мете so sure youre going to love the freedom and 
possibilities of more memory that we are GUARANTEEING THESE MEMORIES FOR 90 
DAYS. Money back. No Questions asked. 


Dolphin Computer 
P.O. Box 3046 
Redwood City, CA 94064 


I NEED IT NOW, RUSH ME: 
(I know these RAMS's аге FULLY GUARANTEED for 90 Days) 


CHECK 
[ ] (Payable to Dolphin Computer) Quantity Price Total 
MASTERCHARGE £ 
16K RAM 
ESAE 64K RAM 
NAME POSTAGE| $5.95 
ADDRESS 
OTHER PRODUCTS 
YOU WOULD LIKE 
TO SEE 


Dolphin Computer P.O. Box 3046 Redwood City, CA 94064 


Gold plated 6 
fingers. 


Optional 
volt regg 


@ Unique 
decoder 
circuitry 
opens 8K 
of memory- 
mapped I/O 
at addresses 8K-16K 


Fastens to ZX81 


00000000000 
PROMPT DELIVERY: 


Bare Board $30* 


With connector to port 
and complete documentation, 


Kit $60* ........ 


6 connectors, 8 chips, sockets 
parts needed (less volt reg). 
* Add $3 ship & hndl. 

Calif. res add 6% tax. 

To order send check or M.O 


( emputer 


301 16th Ave 
San Francisco, CA 


n 


nire 


2х81 сһігрег $9 


Sancti 


The CHIRPER lets you enter programs 


fast and accurately. 

The chirp lets you hear when a key 
is entered or when a shakey finger 
You dont 


has caused a double entry. 


need to look up at the screen to 


check each keys 


The CHIRPER lets you hear the sound 


patterns of a program while it runs. 


Га 


We include the listing of a program 
that plays a random tune. 
installs easly 
There are just 
Complete 
ns included. 
Order your CHIRPER by sending a 
check or money 
Audiograph Co. 3584 Leroy St. 
Ann Arbor, MI, 48103. In the USA we 
pay the postage. Elsewhere please 


stage for Зоя first class. 


= 

5 
C3 
+ 
(b 
= 
O 
( 


EXPANSION BOARD 


Buffered Bus/Development Board for 
marketed and user built peripherals. 


Offers С уеї inexpensive access to ZX80/1 hardware. 


94118 


Que Ee 


ӨА11 lines from 
, port are on bus 
і &1n same order, 


| @Two types of 
connectors: 
.l in, .156 in. 


Q8 chips needed; 
all parts are 
standard. 


Ә Connector to 
port (provided). 
Option to mount ZX81 
uncased vertically. 


Qrinest quality board 
Plated thru holes, 
solder mask, legend, 
tin plated, 


Q Many circuitry апа 
mechanical options. 


Ө 2х80 requires minor 
circuit mod at ROM CS 


Q Fits 7х80/81, MicroAce. 


ontinuum 


(415) 752 6294 


This column will feature short programs 
to show off your computer. impress your 
family and friends. and tickle your imagina- 
tion when SYNC arrives at your place. We 
Invite your contributions. Address them 
to: Try This. SYNC, 39 E. Hanover Ave.. 
Morris Plains. NJ 07950 


4K ROM 
Type in: 
10 REM ZX80 and hit NEWLINE. 
Then type in: 
POKE 16431.587 and hit NEWLINE. 
Hit NEWLINE again and watch the display. 
On some TV sets adjusting the controls 
will change the speed of the display. 
Our thanks to: 
Aaron Seeler 
3460 Red Rose 
Encino. CA 91436 


8K ROM 
ENTER the following lines: 


LET R=INT (tRNDse421 +1 
LET B=INT (RND #42} +1 
LET C=INT {RND Z) +1 

FOR 4-1 TO A STEP C 

PLOT n, 

PLOT ШЕ 

NEXT J 

сата 28 


к лр Ф ду {14 
е Л GU C9 бу д 


kie 


After you hit RUN and ENTER. watch 
the results. 
Our thanks to: 
Bernard Bush 
Rt. 2 
Mansfield. MO 65704 2" 


Glitchoidz 
neport 


Getting Loaded (2:2) 

Clarifications offered by the author 
include: 
1) Check your tape recorder grounding; 
you may have to reverse the diode. 
2) Parts list: LED #276-042; diode 
£276-1114. 


The Game of Life Revisited (2:1) 

The author has supplied the following 
changes which should make both versions 
work. 

p. 20, col. 3: 

LET A=USR(16427) 

p. 21, Fig, 3. 

1) Hex address column: the instructions 
after 40FD repeat Fig. 2. 
2) Add the following instructions: 


40AB: CD F9 40 CALL TEST 
40AE: DD 7E 22 LD A, (IX--34) 
40B1 : CD F9 40 CALL TEST 
40B4 : DD 7E 00 LD A. (1X) 


3) Correct the following instructions: 
40DF: DD 36 00 00 LD (IX).00 
40E5: DD 36 0080 CELL: LD (IX).128 
p. 25, Fig. 7: 
4115: Correct hex format to 28 OE 
Already noted in 2:2: 
p. 21, Larger Field: 
3) POKE 16435.20 
p. 21, Fig. 5: 
240 IF A <1 OR A 2300... 


MicroAce Video Upgrade(2:1). p. 27. 

The author has supplied the following 
additional information: 

1) Ist col., last sentence: pin 2 should 
be "pin 1." 

2) Several readers have wondered about 
connection "G" on the board. The in- 
structions can be interpreted to indicate 
a connection between it and both IC 21 
pin 1 and the base resistor of the transistor 
buffer used on VHF modulator equipped 
Z X80 computers. Connect G as follows: 

a) UHF modulators: to IC 21 pin 1. 

b) VHF modulators: to the base resistor 
of the buffer only. a” 


SYNC Magazine 


ZX81 SOFTWARE 
THE CHECK BOOK 


Get rid of the draw full of old checks "M" | 
and end the monthly hassle of checkbook balancing with THE .. A scientific approach to solving the 
CHECK BOOK. This personal or business checking account Cube. This program allows you to set up and move 
program stores up to 250 transactions on a single program. Over the Cube in any configuration, gives you a choice of 
3600 transactions can be permanently stored on a single cassette. displays -- two dimensional, three dimensional and 
THE CHECK BOOK provides all transaction information and memos flat -- and remembers every move. 
and will sort by date, latest transactions or alphabetically. 16K $1 4.95 


16K $14.95 


f, 
e 


(^ 


CUBE 


LOAN/MORTGAGE 


The LOAN/MORTGAGE PROGRAM is a fast and flexible 
calculation program, useful as a tool when contemplating a major 
purchase. It determines compound interest payments enabling you 
to investigate the details of a fixed rate mortgage or many other 
types of loans (i.e. condominiums, cooperative apartments, car, 
boat, home improvements or college.) It is also useful in developing 
payment schedules for all types of financial planning (such as 
owner financing of real estate). 

The program has a menu with seven items: 1.) Single Payment 
Data, 2.) Single Year Data. 3.) Profile By Month, 4.) Profile By Year, 5.) 
Interest/Principal Plot, 6.) New Data, 7.) End (To Save). 


PLUS BOOKS 


The Complete 2Х81 BASIC Course 
Not Only 30 Programs 


VU-CALC 
Turn your ZX81 into an immensely 


powerful analysis chart. VU-CALC constructs, generates and 
calculates large tables for such diverse applications as financial 
analysis, budget sheets and projections. Using a choice of grids and 
formulas you can quickly and easily set up an entire business or 
household financial management program. 

клр 16K $19.95 


BACKGAMMON 


$35.00 


This classic game of skill and luck has . | 
been transformed into an exciting ZX81 game using fast and for Sinclair 2X81: 1K $14.95 
efficient machine code and detailed graphics. Backgammon has a - 
choice of four levels of skill and features screen displayed rolling Machine Language ; 
diceand doubling cube. 16K $14.95 Programming Made Simple $19.95 


ZX81 ROM Disassembly $14.95 
Understanding Your ZX81 ROM $19.95 


PLUS MANY MORE ZX81 PROGRAMS! 


WRITE FOR FREE CATALOG 


SEND CHECK OR MONEY ORDER TO: 


Please send me: SOFTSYNE, INL. 


— copies of CUBE @ $14.95 ea 
... Copies of BACKGAMMON @ $14.95 ea PO Box 480, Murray Hill Station, New York, NY. 10156 
— copies of THE CHECK BOOK @ $14.95 ea 
— Copies ofLOAN/MORTGAGE @ $14.95 ea Bl NAME 
. copies of VU-CALC @ $19.95 ea 

ADDRESS 


Add $1.50 shipping and handling. CITY 
New York residents add sales tax. STATE/ZIP 


NOW, THE BESTSELLING 


HOME COMPUTER PACKAGE 


IS AVAILABLE FOR THE ZX81 


BILLBOARD 

Your message scrolls 
continuously ' across 
the screen in giant let- 
ters. Perfect for dis- 
plays and exhibits. 
Messages are easily 
changed. Press “S” to 
SAVE a message on 
tape. When reloaded, it 
comes up running. 


CHECKBOOK BALANCER 
Keep a running tabula- 
tion of your bank ac- 
count. Reconciles bank 
statement to check- 
book balance and dis- 
play both. Stores and 
displays up to twenty 
uncleared transac- 
tions, (more on larger 


Why is THE HOME COMPUTER PACKAGE a bestseller? Judge for yourself: 


COMPOSER 

A color keyboard overlay turns your com- 
puter into a multi-octave musical instru- 
ment. Broadcast music to nearby radios 
as you play — or play through your own 
sound system — or record directly onto 
tape. Stores notes as you play, ready for 
immediate playback. EDIT keys allow 
easy changes. Single-step forward or 
backward through your piece. SPECIAL 
EFFECTS keys let you create laser blasts 
and arcade noises. 


ETCH-A-SCHEEN 

Easily paint text and graphics over most of 
the screen. Move forward, backward, up 
or down, leaving behind text, graphics, 
and inverse characters. Keys REPEAT 
while held down. Your drawing can be 
stored on tape... and immediately ap- 
pears when reloaded. Perfect for desig- 
ning screen logos or just doodling. 


Pm 


memories). 


The complete ZX81 HOME COMPUTER PACKAGE, including cassette 
of four programs, manual, guide cards, screen display sheet, musical 
score sheet, and TWO FULL-COLOR KEYBOARD OVERLAYS, is just 


$9.95. Shipping and handling included! $9.95 


From: LAMO-LEM LABORATORIES, CODE 208, BOX 2382, LA JOLLA, CA 92038 


The ZX81 Home Computer Package runs on 
all ZX81's, (1К memory or more). Also on x 
ZX80's with optional 8K ROM. Enclose check [ 


The ZX81 Home Computer Package, ($9.95) 
similar items: 


The ZX80 Home Computer Package 
(for standard 4K ROM), ($9.95) 


or money-order with or ders. No postage, han- 
dling, or sales tax. Foreign orders add 3096 
for airmail. All packages carry ten day re- 
fund-or-replace guarantee. 


The Timex Sinclair 1000 
Home Computer Package, ($9.95) 
also available: Our catalog, with screen display and coding sheets, is free! 


ZX81 Classics (with K-Trek, Life, 
Lunar Lander, Mastermind), ($9.95) NAME 


ZX81 1K Disassembler, ($9.95) ADDRESS 


CITY 


STATE/ZIP 


4K ROM 1K RAM 
8KROM 16K RAM 


Two Switch Human Interface for the 
Communicative Impaired 
Charles Dorcey, Jr. 


Ed.—A WORD OF CAUTION: Any hard- 
ware project that involves modifications 
to your computer must be approached 
with extreme caution. SYNC cannot be 
responsible for problems that may arise 
from attempting hardware projects. 
Obviously, any damage done to the com- 
puter can be costly in time and money for 
repairs or even replacement. 


An Experiment 

Let's try an experiment. Type in a few 
lines of the program in Figure 6, and 
change channels on your TV. Contemplate 
the result. Of course, we know that nothing 
is wrong with the computer; perhaps the 
lines are still somewhat visible. We suspect 
that it is still responding to its keyboard, 
but the responses have become “lost” 
somewhere along the way back to you. It 
is probably not worth the effort to use the 
computer without a readable display. Most 
of us would just shut it off. 

Suppose now that you take the com- 
puter's point of view. You know that you 
are functioning as always, but that you 
cannot get your operator to read and 
respond to your output. Imagine now asa 
person that due to some birth defect, 
illness, or accident your messages are lost 
on their way out. You know that you are 
still as intelligent and creative as ever, 
but does anyone else? Do they shut you 
off because your message is not getting 
through to them? 

This article is intended to use the 
ZX80/81 to take a step toward enhancing 
the communicative potential of such 
people. Minimum physical coordination 
is required to display messages on the 
monitor which could be placed, for ex- 
ample, at a bedside visible to both the 
user and visitor. Granted that it is crude 
and inefficient, but it is also quick and 
relatively inexpensive to build (even if 
you have to buy a new computer to 
dedicate just to this task). Hopefully, the 
article will stimulate a more elaborate 
system design. 


Charles Dorcey, Jr. 912 Park Hill Rd., Laurel, MD 
20707. Adapted to 8K ROM by James Grosjean. 


May/June 1982 


Program Usage 

The program will usually display three 
rows of characters on the screen at any 
time: the upper alphabet (UA) row, the 
lower alphabet (LA) row, and the message 
row, which will be empty at first. The 
program allows the user to select letters 
from the alphabet rows for display in the 
message row. Three special characters 
are also included: 1) the inverse-space 
graphic to put in a blank space; 2) the 
inverse less-than sign to delete the last 
character entered; 3) the British pound 
sign to delete the entire message. 

Suppose the user is thirsty and wants to 
call for “WATER.” Since "W" is found in 
the LA row when he begins, he pushes 
NEWLINE. When the display reappears, 
the alphabet rows are half as long. Now 
the UA row shows B through O; LA, P 
through Z. "W" is still in the LA row so 
he pushes NEWLINE again. The display 
reappears as shown in Figure 1 with UA 
holding P-V and LA holding W-Z. The 
user again chooses the lower row, and the 
display will look like Figure 2. Now “W” 
has moved to the UA row, so the user 
must type U and NEWLINE. Figure 3 
shows the new display, and U and NEW- 
LINE are again entered. Since there is 
only one letter in each row now, one 
more choice is needed. U and NEWLINE 
are entered for the third time and the 
“W” is put into the message line. The 
screen display will put the whole alphabet 
back for the next choice. The sequence 
for choosing “А” is: U, NEWLINE, NEW- 
LINE, NEWLINE, NEWLINE, NEWLINE. 
Since there are 54 characters in our 
"alphabet," any letter can be selected with 
five or six choices. 


Input Modifications 

Since minimal control of hands and 
fingers often accompanies communicative 
disorders, some users may not be able to 
work with the standard ZX80/81 keyboard. 


. For some a simple sheet of rigid material, 


e.g., perfboard, with finger-sized holes over 
the U and NEWLINE keys may be ade- 
quate. For others an external switch 
actuated by finger, arm, foot, or head 
motion will provide the necessary input 


control. Sound, proximity, and electro- 
myographic sensing interfaces are beyond 
the scope of this article but may have 
potential. 


Figure 1 
PORSTUV 
WXY Z 

Figure 2 
WX 
YZ 

Figure 3 
W 
X 


23 


GAMES PACKS 


for 1K ZX81 & 8K ROM ZX80. Eight 
fantastic programs for the 


unexpanded ZX81, including 


DIGICLOCK, 9-LIVES, REACTION TEST, 
GOBBLER and PATTERNS. 
$9.95 ($12.95 in Canada) 


2 


for 16K ZX81. Four programs writ- 
ten in BASIC for the expanded 
ZX81. PONTOON, FRUIT 
MACHINE, OXO, and BIO— RHYTHMS. 


$9.95 ($12.95 in Canada) 
3 Two programs for expanded ZX81 

to keep you entertained for hours! 
3-D OXO is written in machine code and is 
hard to beat. MARS RESCUE is a com- 
pulsive adventure game. 


for 16K ZX81 and 8K ROM ZX80. 


$9.95 ($12.95 in Canada) 
for 16K ZX81. ZOMBIES — escape 
as they chase you around Zombie 
Island. Lure them into the pits, but 
don't fall in yourself. MOUNT MAYHEM — 
can you reach the 20,000 foot summit? 
Look out for Yetis and other hazards! 
$9.95 ($12.95 in Canada) 


DILTATOR 


Fantastic new adventure game for 16K (or 
greater) ZX81. You have just become 129th 
ruler of Ritimba with a single goal in mind: 
take full advantage of the situation for 
your own good. You have to deal with a 
handful of factions: unruly army, 
downtrodden peasants — but you have 
the secret police on your side. 


$14.95 ($17.95 in Canada) 


CONSTELLATION 


Turn your ZX81 into a telescope with this 
amazing 16K program. Produces a simula- 
tion of the night sky as seen from any 
position on Earth at any chosen time this 
century. You may point your telescope in 
any direction, move it up, down, left or 
right, zoom in or out. Stars may be 
displayed by magnitude or constellation 
$14.95 ($19.95 in Canada) 


CHESS 


A challenging chess programme, written 
in machine language, designed to operate 
in the ZX81 fast mode. ZX Chess allows 
you to select from 6 levels of play, choose 
either black or white, and enables castling 
and en passant moves. Unique ‘‘self- 
running" feature: you start the tape and 
when the chess board appears on the 
screen, start your game. 

ZX CHESS! $24.95 ($29.95 in Canada) 


ZXDB 
Machine Code Disauembler 


Machine Code Assembler — 


S1208TORE- ELECTRO 


ZXAS Assembler 


Now you can use the full power of the Z80 
microprocessor without having to 
laboriously POKE in instruction codes. 
This full specification Z80 assembler 
assembles all the standard Zilog 
mnemonics, which are simply written into 
REM statements (more than one per line is 
allowed) within your BASIC program. 
When assembled, the assembly listings, 
together with assembled codes and 
adresses, are displayed on the screen. 
The assembled code is executed by USR. 
The program occupies 5K, is situated at 
the top of the memory, and is protected 
from overwriting. This means that ZXAS 
may be used in conjunction with ZXDB 
(see below), providing an extremely power- 
ful machine code system normally only 
found on very expensive computers. 

The program is available for both the ZX81 
and the 8K ROM ZX80, and in both cases, 
the 16K RAM pack is required. Despite the 
low price, ZXAS is a FULL- 
SPECIFICATION ássembler, and is a must 
for all serious ZX users. Full documenta- 
tion on how to use the assembler (in- 
ied a list of the mnemonics) is sup- 


БО, de ($12.95 in Canada) 


ZXD Debugger 


The perfect complement to the ZXAS 
assembler, ZXDB is a complete combined 
machine code disassembler and debugg- 
ing program. Like ZXAS, it is itself written 
in machine code for compactness, and 
may be used in conjunction with ZXAS, 
still leaving about 9K of memory for your 
Own program. 

Apart from the DIASSEMBLER, the pro- 
gram has features including SINGLE 
STEP, BLOCK SEARCH, TRANSFER AND 
FILL, HEX LOADER, REGISTER DISPLAY 
and more, all of which are executed by 
simple one key commands from the 
keyboard. All in all, an extremely powerful 
programming aid, 'well worth the money 
for the disassembler alone! 

$9.95 ($12.95 in Canada) 


STAR TREK 


The classic computer game in which you 
trek across the galaxy in search of KI- 
ingons to zap with your phasers and 
photon torpedoes. You have long and 
short range scanners to help you find 
them, Starbases to refuel your ship at and, 
of course, various witty comments from 
the crew. 16K. 

$9.95 ($12.95 in Canada) 


Disassembler/ 


VU-LALL 


VU-CALC. Constructs, generates, and 
calculates large tables for analysis, 
budget sheets and projections. Up to 26 
columns of figures or data can be entered, 
plus user definable formulae capable of 
relating any one or more position in the 
table to any other defined position. 


$24.95 ($29.95 in Canada) 


MULT IF IL El e 
PROGRAM (C) 1981 GUG-EYTE 


SET UP pate FARAHET ERS 
CREATE LI 

MODIFY ILE 

SERRCH FOR FILE 


1 
2 
3 
4 
5 
6 
Y 
8 


LOCK 
SRUE FILES ON TAPE 


ENTER YOUR CHOICE (1-3) 


MULTIFILE 


Data Storage System 

An amazingly versatile multi-purpose fil- 
ing system for the 16K ZX81. The program 
is menu-driven, and number, size and 
headings of files are user-definable. Both 
string and numerical files are catered for. 
Files may be created, modified, replaced, 
and searched, and are protected by an in- 
genious foolproof security system. Out- 
put to the ZX printer is also provided. The 
program comes on cassette, together with 
three quality data cassettes for file 
storage, and comprehensive documenta- 
tion, describing a host of applications for 
both business and personal use. Supplied 
in an attractive storage case. If your ZX81 
is bored with playing games, then this pro- 
gram will give it plenty to think about! 
$29.95 ($39.95 in Canada) 


VIEWTEXT 


A ten page information display system for 
the 16K ZX81. Can display both text and 
graphics in any sequence with variable 
speed. Many applications including shop 
window displays, educations, animation, 
etc. 

$14.95 ($17.95 in Canada) 


Gladstone Electronics, 901 Furhmann Blvd., Buffalo, N.Y. 14203 (716) 849-0735 


Atlast, a comprehensive text for your Sinclair ZX 81! 
The complete BASIC Course is a manual which will 
immediately become an indispensible work of 
reference for all your ZX 81 programming. 


Whether you have never done any programming or 
whether you are an experienced microcomputer 
user, the Complete BASIC Course will provide itself 
to you as an invaluable aid. 


The Complete BASIC Course is designed to teach 
you to write and develop BASIC programs for the 
Sinclair ZX 81 - no other books or aids are 
necessary. All is revealed in our easy step-by-step 
guide with programs and "test yourself" exercises all 
the way through. 


As you become more proficient with computing, the 
Complete BASIC Course will continue to be an 
essential guide, giving you finger tip references, 
numerous advanced programming techniques and 
memory saving devices specifically for the Sinclair 
ZX 81. 


HOW TO WRITE PROGRAMS: 


Even if the idea of writing programs is completely 
mystifying to you, the Complete BASIC Course will 
show you just how easy it is. In no time you will be 
able to write and enjoy complex programs for 
whatever use you desire. 


Using the proven "TOP-DOWN" approach, the 
Complete BASIC Course will show you systematic 
and simple ways to write programs. Even 
experienced programmers will benefit from this 
Course, making programs easier to write and less 
prone to error! 


NUMEROUS EXAMPLES: 


Every concept, every function is fully described by 
simple programs that you can enter on your Sinclair 
ZX 81 in minutes. 


MORE BOOKS! 


Not Only 30 Programs for the Sinclair ZX81: 1K- 

Not only over 30 programs, from arcade games to the 
final challenging Draughts perna program, which all 
fit into the unexpahded 1K Sinclair ZX81 but also 
notes on how these programs were written and 
special tips! Great value! 

$14.95 ($16.95 in Canada) 


ana Language Programming Made Simple for the 
nclair 

A complete beginner’s guide to the computer’s own 
language —Z80 machine language. Machine language 
programs enable you to save on memory and typically 
pes you programs than run 10-30 times faster than 

ASIC programs. 
$19.95 ($23.50 in Canada) 


Understanding Your ZX81 ROM 

A brilliant guide for more experienced programmers 
by Dr. lan Logan, this book illustrates the Sinclair's 
own operating system and how you can use it. In- 
cludes special section on how to use machine code 
routines in your BASIC programs. 

$19.95 ($23.95 in Canada) 


ZX81 ROM Disassembly 

Part A. Covers ROM locations from 000H to OF54H 
and includes all functions except for routines used in 
floating point calculator. A must for the experienced 
programmer. 

$14.95 ($16.95 in Canada) 


ZX81 COMPLETE 
BASIC COURSE 


The Complete BASIC Course contains over 100 
programs and examples! These programs illustrate 
the use and possibilities of the Sinclair ZX 81: 


Home use 

Financial analysis and planning 
Educational applications 
Games 

Mathematical applications 
Displays of Artificial Intelligence 


EVERY FUNCTION COVERED: 


No matter what your application, what your 
confusion about any function, you will find it covered 
in the Complete BASIC Course. 


A full and detailed discussion is included of even 
traditionally taboo topics such as USR, PEEK and 
POKE. 


A handy alphabetical summary section lists all 
functions, and provides a short description and 
example programs of all topics. 


A PERMANENT WORK OF REFERENCE: 


The Complete BASIC Course is an excellent 
reference work for experienced programmers 
(including tips on using special techniques) as well 
as a comprehensiye step-by-step guide for 
complete beginners. 


The Complete BASIC Course has over 240 pages 
filled with information in an attractive durable ring 
binder - this is a lay-flat work of reference that 
deserves a place next to every Sinclair ZX 81 


UT" $34.95 


BASIC Course Programs on Cassette 
All major programs in the BASIC Course are available 
pre-recorded in this set of cassettes. This is a valuable 
adjunct to the Course, saving you time and effort. 


$7.50 ($9.95 in Canada) 


LAST MINUTE SOFTWARE! 


Backgammon (16K) Includes a high quality graphic 
representation of the board. $14.95 ($17.95 in Canada) 
FI ght Simulation Incredible realistic machine 
co 


e program for piloting your own ZX81! $24.95 ($29.95 
in Canada) 
Damsel & the Beast (1K) Superb adventure game. $14.95 


17.95 in Canada) 
wo Adventure Games (16K) $14.95 ($17.95 in Canada) 


The Ex 
Guide to the ZX81 


For Sinclair 


ZXB87 


64K 


$179-95. 


Memotech 64K Memopak 


The Memopak is a 64K RAM pack which extends 
the memory of the ZX81 by a further 56K. Design- 
ed to be in the price range expected by Sinclair 
owners. Plugs directly into the back of the ZX81 
and does not inhibit the use of the printer or other 
add-on boards. There is no need for additional 
power supply or cables. The Memopack together 
with the ZX81 gives a full 64K, which is neither 
switched nor paged, and is directly addressable. 
The unit is user transparent, and accepts such 
basic commands such as 10DIM A(9000). 
With the Memopak extension the ZX81 is 
transformed into a powerful computer, suitable for 
business, leisure and educational use, at a frac- 
tion of the cost of comparable systems. 


plorers’ 


Programming Aids 
Some Games and 
Other Novelties 
Applications 

Machine Language 
Discovering the ROM 
Hardware 

$9.95 ($12.95 in Canada) 


SAT, 


Shipping and handling charge $1.50 

per order books and cassettes, $3.00 

per order 64k Memopak. 

In Canada: Gladstone Electronics. 

1736 Avenue Rd., Toronto, Ont.(416) 787-1448. 


CHARGE TO: Please rush me: 
[X VISA © MASTERCARD 


1 account number: i 


GLADSTONE 


Electronics 901 Fuhrmann Blvd., Buffalo, NY, 14203 


Quantity Price Total Д 


[| 


Expiry date 


Signature 


H Date 
| NAME 


| ADDRESS SHIPPING 


TOTAL .. 
L^ Gladstone Electronics, 901 Furhmann Blvd., Buffalo, N.Y. 14203 (716) 849-0735 


Figure 4. Add on Switch Wiring 


Push-button switches 
(Radio Shack 275-1547) 


EA 


R17 (R20) 
— LL - R14(R21) 


3-4 feet — | 
About 2 inches 


Connectors (1 pkg.) 
(Radio Shack 274-283) 


Computer 


Figure 5. PC Board Detail 


Е : 


S 


MicroAce PC details 


R14 (R21) 


NEWLINE 
row connection 
D9 (D7) 


U row connection 
D8 (D6) о 


MicroAce printed circuit 


MICROACE issue 1.1980 © 


To 74LS365 — 


% 


ttc. 


1K RAM 15 Ғғ 


R17 (R20) 


Ala!’ 


* Make connections here 


26 


A Hardware Modification 

Adding the necessary switches to the 
computer should be no problem for anyone 
who knows which end of a soldering iron 
to hold. In this discussion specific refer- 
ences to the ZX80 will be followed by the 
corresponding MicroAce numbers in pa- 
rentheses. For example, on both schematic 
diagrams, five lines come down from the 
keyboard matrix, go left across the bottom 
and up the left side into a 74LS365 
integrated circuit. This IC is designated 
IC10 (U11) on the pe board and schematic. 
I have not had a ZX81 to work with, but 
since the keyboard is electronically iden- 
tical only the part numbers would 


change. 


It is helpful, though not essential, to 
understand how the original ZX80 key- 
board works. Under each key is a square 
in which two wires cross to form a simple 
pair of contacts which come together when 
the key position is pressed. Though the 
keyboard is physically arranged as four 
rows of ten keys, electrically it is arranged 
as eight rows of five columns. Each column 
Is wired to a bit on a data bus which goes 
up through that 74LS365 to the Z80's 
data bus when the processor is testing the 
keyboard. Since the column wires are 
"pulled up” to 5v ordinarily, the only time 
the Z80 will see a zero bit when testing 
the keyboard is when one of those keyboard 
"switches" connects the column line to a 
row line which is grounded. A short circuit 
to ground "pulls" down harder than a 
resistor can pull up. By rapidly grounding 
one row line after another, the CPU can 
test all the rows in the keyboard. But how 
does it do that? A very subtle feature, 
probably unique to the 780, is involved. 
The monitor program executes an "IN 
C,kbd” instruction which 1) puts out the 
keyboard address on the low half of the 
data bus, 2) loads the current pattern 
from the data bus into the C register of 
the CPU, and 3) (this is the sneaky part) 
drives the high half of the address bus 
with the contents of the CPU's A register. 
This high half of the address bus drives 
the column lines of your keyboard just 
the right way so one column is sensed at a 
time and nobody gets confused but the 
poor hobbyist who tries to figure the whole 
thing out. | 


SYNC Magazine 


Two wires must be added to your 
computer for each extension switch. All 
the switch has to do is short the right row 
to the right column to imitate the original 


Figure 6: 
— —Basic Output Enhancement I, 4K Program. — 


10 REM 


an = BASIC OQUTPUT ENHSNCENEN 


р 
G 
е) 
l4 
X 
AD 


Pr fy) 


T | ons Rael 
HC 


- 
Qi i 


каз + 
IDE: 


gun mul 


Gu 


e n3 c 


o 

[ 

г" 

m 

4 
бтрт DH 
HUE HEN ms Fc arem ams 
UMC HOON 


Iv. 


J63 THEN GOTO 
PRINT DISPLRHY 


158 
Гы." 


аір; 


FOR I- 
NEXT І 


B+i TO C 
iat 


І == 4. а а 
2 ipt ens (TI); 

270 NE 

PRINT 

INPUT Bs 

S00 IF A= QT HEN SFOR 

IF CODE (Ag) 25а THEN GOTO 3 


В = +41 


GOTO Sa 


Figure 7: 
— — Basic Output Enhancement I, 8K Program. 


20 DIM Rí543 


43 FOR I=1 TO 52 

s@ LET лдын 

©б NEXT 

70 LET А53) 2128 

S590 LET A(54) =14? 

36 FOR J=1 TO 64 

120 LET A=1 

110 LET 6=26 

120 LET Cz53 

130 CLS 

142 LF J<64 THEN GOTO 168 
159 PRINT “DISPLAY FULL" 

150 FOR I=A TO 

170 PRINT CHR$ (ACI); 

159 NEXT I 

iod PRINT 

Daa FOR I=B+1 TO C 

zig PRINT CHR$ (ACT; 

220 NEXT I 

238 PRINT 

zd PRINT 

250 FOR 1=1 TO J-i 

260 PRINT CHR ТТУ); 

270 NEXT I 

2S0 PRINT 

290 INPUT AS 

зо F AG="O" THEN STOP 

3190 IF AG="U" THEN GOTO 35a 
320 ET A=B+1 

S38 LET B=INT ((A4C) 72) 

340 GOTO 370 

5509 LET CzB 

360 LET B-INT ií (BA? 

370 IF A:B OR B«C THEN GOTO 138 
Зё@ LET T fl} =A (С: 

39ge IF mí(C)z147 THEN LET J= 7-2 
490 IF ЯС} =12 THEN GOTO 90 
41@ IF ЯС) =128 THEN LET T (J) =й 
42а NEXT J 

430 сото аа 


Мау/Јипе 1982 


switch. The type of switches to use will 
vary with the intended user's capabilities, 
but should be normally-open (N.O.), single 
pole single throw ((SPST), either push- 
buttons or spring-return toggles. To allow 
easy removal of the switches when not in 
use, add a pair of audio-type miniature 
connectors in the switch wiring, but that 
is optional. Proceed as follows: 


1) Run one wire from D9 (D7) to one 
terminal of a switch. Use the end of the 
diode which is closest to the keyboard 
wiring. See Figure 4. 

2) Run another wire from R17 (R20) to 
the other terminal of the same switch. 
Use the end of the resistor which is NOT 
connected in common with the others to 
+5у. This is the NEWLINE extension 
switch. 

3) Add wires to D8 (D6) and R14 (R21), 
as described in 1) and 2) above, for the 
"U" switch. 

4) You are now ready to enter and 
RUN the program. 

If you do your own soldering, use as 
fine a tip as you can get. Keep it clean 
and bright. When the iron is dirty (dull 
grey in color), solder "bridges" to adjacent 
conductors are easy to make and hard to 
remove. Use no more solder than neces- 


Sary. 


Suggestions for Program Improvements 


Obviously, improvements can be made 
to the program in Figure 6. Rewriting it in 


machine language would speed it up and 
remove the need to hit NEWLINE each 
time. A user defined list of words either 
in place of or in addition to the alphabet 
would remove the laborious retyping of 
common words and phrases. If you want 
to get fancier, alternate displaying the 
top and bottom rows so that a single switch 
closure during the appropriate display 
period would then do the selection. (One 
sound-activated switch is much easier to 
build than two.) Finally, a “тахітит- 
entropy" coding scheme could also speed 
use by creating shorter "paths" to com- 
monly needed symbols (whether individual 
characters, letter groups, or words). If 
you put only the four most common 
symbols in the LA row in the beginning, 
only three decisions would be needed to 
select any one of them. (Note: this is 
getting dangerously close to “information 
theory.") 


Program Notes 

1) The program was written on a 4K 
ROM, 1K RAM MicroAce. 

2) The A array holds the "alphabet." 
The symbol set (lines 50-90) can be cus- 
tomized for the individual. 

3) The T array (64 letters) holds the 
message text. Modify lines 30, 90, and 140 
to expand it for your memory capacity. 

4) Line 300 provides for modification 
and/or debugging while running the pro- 
gram by entering “О” to quit. 

5) Any input line beginning with U selects 
the UA row. Otherwise the LA row is 
selected. When only one character remains 
in the selected row, it is entered into the 
text buffer, i.e., the message line. 

6) Lines 390, 400, and 410 select the 
control symbols and can be changed to 
your own preference. The [Ё] resets the 
file pointer and, in effect, wipes the slate 
clean. The KI moves the pointer back one 
space to allow error correction. The Ё 
puts a space into the text buffer. не 


MUSIC AND 
KALEIDSCOPES 


PLAYER ZX81 generates music 
through the cassette port. 2 
octaves, 124 note length. 
Random sound program 
included. $6.95 pp. 


SQUARES AND CROSSES are 
kaleidoscopic simulations forthe 


ZX81. $6.95 pp. Cassette and 
instructions. Guaranteed to load. 
ALL RUN IN 1K RAM 
Add $3 each outside U.S. 


William Don Maples 
688 Moore Street 
Lakewood, CO 80215 


= Learn by Doing 
Programming Kits from SSL 
Ө Educational, financial, game 
programs that you build 
as a kit. 
Instructions teach programming 
and tricks of the trade. For free 
catalog write: 
Systems and Solutions, Ltd. 
5054 Kenerson Dr. 
Fairfax, VA 22032 


27 


Keyboard/System Conversion: 
The First 40/1 Keys 


Robert B. Trelease 


28 


Ed. — A WORD OF CAUTION: Алу hard- 
ware project that involves modifications 
to vour computer must be approached 
with extreme caution. SYNC cannot be 
responsible for problems that may arise 


from attempting hardware projects. 


Obviously, апу damage done to the com- 
puter can be costly in time and money for 
repairs or even replacement. 


Introduction 

As a daily user of some of Digital 
Equipment Corporation's nicest micro- 
based laboratory computer systems, it is 
easy for me to be prejudiced about system 
design and operating convenience. In 
particular, I will have to admit a real 
fondness for DEC's VT-103/LSI-11 ergo- 
nomically designed video terminal with 
detached keyboard and self-contained 16 
bit LSI-11 microcomputer bus/backplane. 

As a ZX80 owner, on the other hand, I 
also find system simplicity and portability 
very attractive. As others have pointed 
out, one only needs a battery pack, a 
small portable television, and a ZX80/1 
or MicroAce for a backpackable combi- 
nation that can bring computing to places 
like the high Sierra Nevada wilderness. 

On first thought, it would seem a con- 
siderable design problem to configure a 
system combining DEC-style keyboard 
convenience and modularity with Sinclair- 
style portability. As it turns out, the problem 
is not very great, and the average (read: 
technically sophisticated) SYNC reader 
can probably handle it with ease. 

The purpose of this article is to review 
computer keyboard (KB) conversion for 
the ZX80 or MicroAce and to describe 
the first phase of an adaptation that retains 
original system portability while allowing 
upgrading to an “advanced” expansion- 
bus oriented system. 


Keyboard Conversion Kits 


The fundamental conversion described 
here can be made with almost any KB 
switch array, 40 keys, new or used, so 
long as the switches are normally open 
and are closed with a keystroke. Such 


Robert B. Trelease, 2313 5th St.. Santa Monica. 
CA 90405 


SYNC Magazine 


keyboards can then be paralleled with 
the ZX80 keyboard. The Schultz Systems 
keyboard used in this article was chosen 
because the kit included the electronics 
for additional features not available with 
the standard Sinclair or MicroAce. These 
features, which include shift-locking. auto- 
repeat, and single key. auto-upshifted 
functions (such as single key rubout) will 
be covered in a future article on advanced 
conversions. Unfortunately. Schultz no 
longer provides complete conversion kits 
with used KB’s, although complete in- 
structions, KB source listing. and other 
parts can still be obtained. (At this writing 
kits and instructions are available from 
L.J.H. Enterprises and Double H Elec- 
tronics.) 


Construction Details 

Ihe KB provided. as is probably the 
case with most used units, came equipped 
with a printed circuit board electronics 
matrix attached to the switch terminals. 
To begin the conversion, it was thus 
necessary to remove this PC board. A 
de-soldering tool, such as a SOLDAVAC 
(ТМ) (Radio Shack no. 64-2085 or equiv- 
alent) is a real necessity. Even with this 
tool, unsoldering the old matrix board 
was clearly the most difficult part of the 
initial conversion, taking about 2 of the 4 
hours needed for the project. In order to 
avoid switch damage on removing the PC 
board, all of the solder had to be removed 
from each connection. This required 2 
complete passes over the board. (Figure 
iW 

Once removed, the old matrix board 
was kept for salvageable parts like sockets, 
IC's, diodes, resistors, and capacitors— an 
added bonus! Each switch was tested with 
an ohmmeter in order to avoid unpleasant 
surprises and then labelled on the back to 
aid in wiring. Although it was not necessary 
with my KB, the circuit board could have 
been retained for switch support, with 
each terminal contact being isolated from 
the old circuit by cutting printed circuit 
conductors. 

The switches were then strung together 
in rows and columns using the ZX80 matrix 
convention (see $YNC 3:42 for greater 
detail). Briefly, this consists of wiring in 
parallel one terminal of each switch in 8 
rows (e.g., "shift," Z. X, C, V) and the 
other terminal of each switch in 5 "folded" 
columns 9 to 13. Since there were two 
"shift" keys, each was wired the same to 
allow shifting with either hand. For con- 
venience, I did the same with adjacent "." 
and "." keys. All connections were made 
with standard insulated hookup wire. 
(Figure 2) 

For connecting the wired KB matrix to 
the computer, I used a 16 pin DIP termi- 
nated 18" ribbon "jumper" cable (Radio 


May/June 1982 


Figure 1: Desoldering the kevboard. 


Shack 276-1976) and 2 16 pin DIP IC 
sockets (Radio Shack 276-1998). A small 
piece of 0.10 spacing "perf-board" was 
attached to a convenient slot in the KB 
frame using cyanoacrylate glue ("Crazy 
glue”). One of the 16 pin IC sockets was 
glued to the board. and the row/column 
leads (1-8/9-13) were soldered to its ter- 
minals in numerical order (1-8 and 9-13 
respectively). Pins 14-16 were reserved 
for power connections for the advanced 
functions. (Figure 3) 

The final step of the basic conversion. 
connection to the computer board matrix 
diodes and resistors, was carried out using 
the DIP terminated jumper cable. One of 
the DIP plugs was cut off the cable. leaving 
enough cable on the detached connector 
so that conductor numbers could be 
positively identified. This was important 
because the jumper cable was not color- 
coded, although the 1/6 edge of the ribbon 
bore a standard red stripe. The computer's 
top cover was removed. Following the 
convention of the IC socket on the KB, 
wires 1-8 were carefully soldered to the 
anode (unbanded) leads of diodes D3 - 
D10 (MicroAce, D1-D8). Wires 9-13 were 
connected to the non-5 volt ends of 


Figure 2: Wiring.ne keys. ——  —ć 


resistors R13-R17 (MicroAce R18-R22; 
neither system is in numerical order!). To 
avoid component damage, wire leads 
were pretinned, and contacts were only 
briefly heated (Figure 4) 

In my ZX80, the ribbon cable was led 
back under the voltage regulator heat 
sink to exit the case just above the 
expansion bus. (Other exits could be used 
in the ZX80 or MicroAce. For example, a 
small slot might be cut in the cover). 
Strain relief was provided by tethering 
the ribbon cable to the video modulator 
case. (Figure 5) 

The final products of this conversion 
were a DIP-socketed, wired keyboard and 
a ZX80 with a mating ribbon cable "tail." 
When the system was connected, every- 
thing worked — almost. Initially, the R and 
O keys did not function on the new 
keyboard. Closer examination showed that 
in wiring the matrix, I had slightly bent 
one terminal on each key so the switch 
contacts did not close. A gentle push on 
the terminal connection restored complete 
function. I then had a ZX80 with both 
keyboards functioning in parallel. (Figure 
6) 

In order to ruggedize the project and 
reduce ТУ interference from the conver- 
sion, a keyboard enclosure was added. I 
chose an aluminum housing for my system 
(BUD KB 13202 from Herbach and 
Rademan, Inc.; depending on the specific 
KB adapted, many other enclosures could 
be used). The IC socket on the keyboard 
was jumpered to another socket mounted 
on the back of the enclosure. (For coura- 
geous engineers who do not wish to test 
keyboard wiring before enclosing, con- 
nections from the rows and columns may 
be made directly to an IC socket on the 
cabinet). The connector pins on the 
computers new "tail" were protected during 
"stand-alone" operation using the remaining 
16 pin IC socket. 


29 


Since the keyboard was printed with 
the standard type letters as well as with 
unusual “uppercase” functions, a copy of 
the ZX80 template was used as a "cheat- 
sheet." Transfer lettering and clear epoxy 
lacquer also could have been used to 
identify keys. 


Synopsis and Provision for Expansion 

As described here, the basic keyboard 
conversion is easy to wire, taking a slow 
builder about four hours of straight time. 
The finished product as modified is a 
detachable keyboard for the ZX80/1 or 
MicroAce which can serve as the founda- 
tion for a more complex, expansion bus 
oriented microcomputer system. In the 
present form, the original system can be 
separated from the new keyboard, thus 
retaining true portability. 

By implementing CMOS switching cir- 
cuitry such as that obtainable from Schultz 
Systems, one can obtain advanced key- 
board functions like auto-repeat and single- 
key rubout. By adding a separate cabinet 
containing a heavy duty power supply, 
printed circuit card guides, and ZX80 bus 
connectors, the true "hardware freak" can 
inexpensively construct a modular micro- 
computer system with features similar to 
those of more expensive business and 
scientific models. (A somewhat different 


30 


Figure 3: Attaching row/column leads to IC socket on períboard. 


approach to such an advanced system 
was shown in SYNC 4:38 "A Parallel 
Interface" by Alger Salt.) Design and 
implementation of these advanced features 
will be considered in a future article. 


(Note: DEC, VT-103, and LSI-11 are 
trademarks of the Digital Equipment Cor- 
poration.) 


ZX81 Conversion Details 

Shortly after finishing the first part of 
this conversion article, I had the good 
fortune to acquire a ZX81 kit. It immedi- 
ately became apparent that the same 
general conversion scheme could be 
applied to the new machine as well. I will 
detail only one approach, although SYNC 
readers will undoubtedly conceive of other 
ways to do the job. 

The keyboard matrix and connector 
should be constructed as detailed above, 
with rows and columns wired to 13 pins 
on the attached DIP socket. The jumper 
cable should then be connected to the 
matrix diodes and resistors, which are 
D1-D8 and RP-3 in the ZX81. In the quick 
and dirty approach, the cable leads should 
be conservatively stripped, pretinned, and 
then soldered to the PC traces of con- 
nectors KB 1 and KB 2 on the solder side 
of the board. 


Figure 4: Attaching ribbon wires to the diodes. 


Soldering may be done relatively easily 
with only the bottom half of the computer 
case removed. Figure 7 depicts the PCB 
under KB 1 and KB 2 and shows the 
order of connections for the lines of the 
jumper cable. 

Stripping of the jumper leads should be 
kept to a minimum, and some additional 
insulation, like heat shrink tubing or silicone 
cement, may be used to reduce the likeli- 
hood of shorting. The cable may be out 
of the case below the bus connector, and 
tethering to PCB screw channel/support 
posts will help reduce the chances of wire 
breaks and shorts. 

ZX81 owners particular about the 
"OEM" condition of their machines might 
want to try adapting a 16 pin dip plug to 
flexible printed circuit "cable" for direct 
connection to KB 1 and KB 2. This scheme 
necessitates opening the case, however, 
and disconnecting the membrane KB when 
connecting to the new KB. This is clearly 
no disadvantage for those who might wish 
to mount the ZX81 or bare PCB perma- 
nently inside the new KB enclosure. 


— Figure 5: Ribbon cable exit from computer. _ 


SYNC Magazine 


Figure 7: ZX81 hookup. 


Figure 8: Row and column arrangement. 


OOOOOOOOOO 


с rr 


du 


II 
TR SIGNALS 


2 JUMPER 
4& | INES 


D8 


7 А14 D7 
KBO 
KBI 
KB2 
K B3 


8 AIS 


< 
= 


13 
12 


~ 


11 
10 


ZX-STD BUS INTERFACE 
Floppy Disc * ON-BOARD MEMORY 
Hi-Res Vid. EXPANSION OPTION 
Add X MEMORY -MAPPED PORTS 
Menery * PROVIDES POWER TO ZX 
Speech *ALLOWS OVER 6M CABLE 
Modem * HI-POWER BUS BUFFERS 


e * DELIVERY FROM STOCK 
D- 


Uto CENE CES p op 
Etc. Etc. - 493M 8 uU" Pu 
From over 50 manuf. ов D Re UU LU oU MA ca NN bee 
Le Lt i i NEST hin Es em | - ANNIN, 
OPTIONS: шшш” h—— —— ө) 
* CONVERT ZX EDGE CON. | par 


TO RIBBON HEADER $30 


A E CO * 2K RAM EXPANSION $15 
Ы *4K RAM EXPANSION $ 25 

ШШ 

BOX 18093 AUSTIN 


"Peas " SINCLAIR 
(512) 385-7405 334 


8K ROM 
16K RAM 


Least Squares Data Analysis with 


the ZX80/81 


Alger Salt 


One of the most common tasks of a 
computer is to perform statistical analysis 
and data manipulative type computations. 
Many of the computations involved are 
very tedious to perform by hand since 
they sometimes require a large number of 
reiterative calculations. Statistical analysis 
problems that take hours for a human 
(equipped only with pencil and paper) 
are solved in a matter of seconds with a 
computer. This article presents a program 
which computes some simple statistical 
quantities commonly used by engineers 
and scientists. 

Data collected in the laboratory or in 
the field often follows some logical pattern. 
The quantity of interest depends on or is 
a function of another quantity. By recording 
a sufficient amount of data, this relationship 
may be determined by fitting a function 
to the set of data points. It is rare that 
data collected in the real world corresponds 
exactly to some function; rather it is 
scattered about with a certain probability 
of corresponding to the function. 

Consider a function which would de- 
scribe the ambient temperature in Cove 
City, North Carolina, as a function of 
time for the last twenty years. If the 
function were to include all of the daily 
temperature fluctuations, it would indeed 
be a very complicated function. However, 
if only the average weekly or monthly 
temperatures were recorded, then a rea- 
sonable function could be fitted to the 
finite number of data points. The function 
would resemble a sinosoid with a period 
of 365 days with maxima and minima 
occurring in the late summer and winter 
respectively. There would be some un- 
certainty associated with correlating a 


Alger Salt, Department of Chemistry, East Carolina 
University, Greenville, NC 278234. 


32 


particular day in the future with some 
specific temperature. In this case the 
uncertainty lies within some confidence 
limits determined by the climate. In other 
cases the uncertainty depends primarily 
on the method or apparatus used to 
measure the data. 

Fitting a function to a set of data points 
is desirable because it allows one to make 
predictions or extrapolations from hypo- 
thetical or trial data. 


The Method of Least Squares 

In many situations the function which 
relates one quantity to another is linear. 
That is, if the data are plotted, the points 
lie on or about straight line. Examples 
include: the current through a resistor as 
a function of voltage, the conductance of 
pure water as a function of the amount of 
salt added or the length of a suspended 


spring as a function of the load attached. 
An approximate method of determining 
the "best" straight line through a set of 
data points is by plotting the points on 
graph paper and drawing a line which 
uniformly divides all the points. Of course, 
this method is prone to error because 
determining the "best" straight line is 
somewhat subjective and two persons 
working with the same data will rarely 
arrive at identical functions. 

The "best" straight line through a set of 
data points is defined as that line in which 
the sum of the squares of the deviations 
of all points from the line is a minimum. 
This method of "least squares" is far 
superior because it calculates, not approx- 
imates, the line. The method yields two 
quantities: the slope and the intercept of 
the line, thereby defining the linear function 
by the well-known relation 

у = ах + Б 
where a is the slope and b is the y- 
intercept. 

The slope and intercept are determined 
by the formulas in Figure 1. Another useful 
quantity is the correlation coefficient, given 
in Figure 2, which is the relative amount 


Figure 1. 
X y 
ху — 
N 
slope =a= 
( x)? 
x 2 
N 
y—m x 
y—intercept = b = 
N 
Figure 2. 
( x)? 
x? — 
N 
N—1 
correlation coefficient = с=т 
, ( y)? 
y — 
N 
М — 1 


SYNC Magazine 


HAVEN HARDWARE 
Programmable Character Generator 
User defined characters 
Z81 Repeating Keymodule 
For editing-variable speed 
Parallel Input/Output Port 
Full-Size Keyboard 
Large two part keytops with repeat key 
* Kit available, subtract 209/ for kit price 


BUTLER/CURRIE/HOOK 
Print n' Plotter Jotter Pads 
100 Sheets 8%” x 1134", 
2816 Pixels PLOT grid 
704 item PRINT grid, numbered, 
keyboard facsimile, 2 hole punched, 
far superior to Sinclair grid 
Print n' Plotter Films 
Erasable overlay 8" y 11” 
PLOT and PRINT grid 
Print n’ Plotter Ring Binder 


JP GIBBONS 


Personal Banking System 
Requires 16K expansion-cassette 


MELBOURNE HOUSE 


Books 

Not Only 30 Programs For 

The Sinclair ZX81 

Machine Language Made Simple 

ZX81 ROM Disassembly Part A & B 
(2 volumes) — Dr. lan Logan 

Understanding Your ZX81 ROM 
Dr. lan Logan 

The Sinclair ZX81 Basic Course 


Casette Tapes 

ZXChess — 16K ZX80-8K/ZX81 
10 Exciting Programs — 1K ZX81 
Adventure A — 16K ZX80-8K/XZ81 
Adventure B — 16K ZX80-8K/ZX81 
Adventure C — 16K ZX80-8K/ZX81 
Spacetrek — 16K ZX81 
Directory/Record — 1K ZX80-8K/ZX81 
with listing 

Reversi — 1K ZX80-8K/ZX81 
Super Invasion — 1K ZX80-8K/ZX81 
Wallbusters — 1K ZX80-8K/ZX81 
ZXGalaxians — 16K ZX81 
ZXBug Utility Program — 16K ZX81 


If you are a producer of hardware or software for the ZX81 and are interested in having a U.S. or Westcoast sales 
orgnization marketing your products we would like to hear from you. 


Add 5% west of or 7% east of Mississippi River to cover handling and shipping. 
Washington residents add 6.5% sales tax. 


Qinclain Place 


8K/16K 


ZX81 CHECKERS 


* FASCINATING FULL SCREEN 
MOVING GRAPHICS. 
* SOPHISTICATED PROGRAM WITH 
DETAILED DISPLAY OF 
PLAYING BOARD. 
* EDUCATIONAL & ENTERTAINING. 
* EASY & FUN TO USE. 
—CASSETTE & INSTRUCTIONS— 
REG. $14.95 


INTRO PRICE—$11.95 
& $1.50 P/H 


В & В SOFTWARE 
1425 LUCY LANE 
MADISON, WI. 
93711 


P.O. Box 2288 Redmond, WA. 98052 


STRUCTURAL 
DESIGN 


For ZX-81 8K/16K 
Programs include GRAPHICS 
STEEL BEAM DESIGN $29 


12 Options of Beam Type and Loading 


TIMBER BEAM DESIGN $29 


3 Options of Beam Type and Loading 


Choice of Timber Grade and allowable Stress 


DORAN ENGINEERING, P.A. 
113 South Chestnut Street 
PLEASANTVILLE, NJ 08232 
(609) 646-3111 


VISA MASTERCARD 


of scatter about the line. A correlation 
coefficient of 1 means that all data points 
lie exactly on the least squares line. A 
correlation coefficient of less than 0.9 
implies that the data are either invalid or 
are not linearly related. 


The Program 

Though the program as written will not 
fit into a IK system, it can easily be broken 
down into independent modules so that 
IK owners should still be able to benefit 
from this article. The DIM statements at 
lines 10 and 11 limit the maximum number 
of data points to 20. The FOR-NEXT 
loop at lines 140-180 repeatedly invokes 
the subroutine at line 1000 to enter the 
data points into the X and Y arrays. The 
main program is made from lines 200-400. 
These statements produce a menu which 
gives the user several paths to follow. 
The user enters a number from 1 to 5 
which is stored in the variable G. The 
program calculates the appropriate line 
number from G and branches accordingly. 
(Note that branching to a line number 
specified by a variable is one feature of 
the Sinclair Basic not found in many others. 
This feature offers many advantages 
including increased readability; it is much 
easier to comprehend a statement that 
says GOSUB PLOTSUB than one that 
says GOSUB 130.) The options given to 
the user are: calculating the least squares 
line, printing a table of the data, plotting 
the data, starting over or ending the 
program. 

The analytical calculations are done in 
the subroutine starting at line 3000. As 
you can see, the summations indicated in 
the equations in Figures 1 and 2 are carried 
out in a FOR-NEXT loop from 1 TO N, 
where N is the number of points. Line 
3340 prints the equation of the line from 
the calculated slope and y-intercept. The 
correlation coefficient is calculated at lines 
3360-3400 and is printed at line 3420. This 
module, along with some way of getting 
data into the X and Y arrays, may be 
used as the main program in a 1K system. 

Ihe plotting routine is useful as a 
qualitative assessment of the data. By 
plotting the data on the screen one can 
see at a glance if the data are well behaved: 
in this case linear. In some cases the user 
may or may not wish to see a plot which 
includes the origin. For instance, a straight- 
line plot with a high positive y-intercept 
would not utilize the full resolution of the 
44 x 64 pixel screen. Instead, the line 
would look compressed against the top of 
the screen. For this reason the user is 
given the option of having the graph include 


34 


the origin or the point (0,0) which is in 
the lower left corner of the screen. This is 
a rather unsophisticated plotting routine 
and is only valid for positive values. The 
user may wish to substitute another. A 
more sophisticated routine would allow 
negative values and position the origin 
accordingly. Labeled axes would also be 
a useful enhancement. 

Note the instruction POKE 16437,255 
at line 5581. This is necessary for ZX80 
8K ROM users. It must follow every 
PAUSE instruction. Failure to include it 
can result in a system crash. The reason 
for this is not clear to me, but it is 
apparently the result of a bug in the ROM. 
It has something to do with a counter that 
both the PAUSE instruction and video 
circuitry use. Without the extra instruction 
the system may work fine for as long as 
ten minutes then suddenly produce a blank 
screen with no response to keyboard input. 
A power down or reset is the only road to 
recovery which, of course, results in losing 
the program which you had just spent the 
last two hours typing in. I had to find out 
the hard way, and, after several weeks of 
testing, probing, and endangering my sanity, 
I happened to stumble across the solution 
on page 127 of ZX61 BASIC Programming, 
a typical case of “when all else fails, read 
the instructions.” Be forewarned. 


Example 

Perhaps the best explanation of the 
method of “least squares” is an example. 
Let’s say that we are looking for the 
function which describes the forward 
voltage drop across a transistor as a 
function of temperature. In order to use 
the least squares method we must have a 
function which we will get back as a straight 
line. Therefore, we must assume that the 
relation of the voltage drop across a 
transistor is linear. Well, it is not quite 


X Y 


Voltage Drop Temperature 


(volts) (degree Celcius) 
(1) 0.6853 0.00 
(2) 0.6752 5.00 
(3) 0.6647 10.00 
(4) 0.6542 15.00 
(5) 0.6440 20.00 
(6) 0.6337 25.00 
(7) 0.6234 30.00 
(8) 0.6024 40.00 
(9) 0.5811 50.00 
(10) 0.5595 60.00 
(11) 0.5377 70.00 
(12) 0.5264 75.00 
(13) 0.5163 80.00 
(14) 0.5054 85.00 
(15) 0.4942 90.00 
(16) 0.4821 95.00 


Figure 3: Voltage/Temperature Table. — 


linear, but close enough when operated 
between 0 and 100 degrees Celsius. The 
data in Figure 3 were collected using a 4- 
digit multimeter and a National Bureau 
of Standards mercury thermometer with 
absolute accuracy to 1/100 of a degree. 

From this table and with the aid of the 
program in Figure 4 we should easily be 
able to determine the temperature of the 
transistor casing (or ambient temperature 
if the device is in the surrounding envi- 
ronment) by measuring its forward voltage 
drop. Conversely, we could determine the 
forward voltage drop if we knew the 
temperature. Suppose we measure a voltage 
drop of 0.6295 volts across the transistor 
and we wish to determine the temperature 
accurately. We know that it should be 
between 25 and 30 degrees just by looking 
at the table. But we want to be a little 
more accurate than that. Let's run the 
program and see. 

The program first asks for the number 
of data points. We have collected 16 known 
data points so enter 16. The program 
then asks for the data, X1 then Y1, X2 
then Y2, etc., until the Y component of 
the last data point is entered. Then a 
menu is displayed so we can tell the 
computer what to do with the data: 1) 
perform least squares analysis, 2) list the 
numerical values, 3) plot the data, 4) start 
over, or 5) quit. The best thing to do here 
is list the data to double check all of the 
entries. If a mistake is found, the program 
forgivingly offers the option of correcting 
it without entering the entire collection 
again. After entry corrections, the program 
waits for another NEWLINE before going 
back to the menu. With the corrected 
data now in the computer we are ready to 
perform a least squares analysis. The 
program responds with the slope, y- 
intercept, and the equation of the best 
straight line through the set of data points. 
The unknown quantity can be immediate- 
ly calculated by substituting the corres- 
ponding known quantity into the equation. 


y=axtb 
or 
(y-b) 
X == 
а 


In this case we know x. 


y = -469.02146 deg/V* 0.6295 V + 
321.99771 deg — 26.75 deg 


The result is valid to the number of 
digits of the input data. The same results 
would have been obtained had we switched 
the coordinates, that is, if we had let the 
voltage drop be the X value and the 
temperature be the Y value. Then the 
unknown temperature would have been 


SYNC Magazine 


EVEN IF YOUR LIGHTS GO OUT 


YOUR COMPUTER WON'T, 


| Introducing —^ 
. NiCd Battery Back-Up Units from Syncware 


«+ Make your ZX Portable 
BBU-2 runs over 2 hr. 
BBU-1 runs 1 hr. 
Baby BBU runs Уе hr. 
5 • Make your ZX immune 
——X ÙO lino glitches! : e 
PRICES: : : * Protection against _ s 
Baby BBU — 39.50 brown-outs, blown 
BBU-1 — 54.50 fuses, etc. 
BBU-2 — 84.50 


y 4 
ү. 
ОКЕ 


TIRED OF LINE GLITCHES Prices are postpaid in continental 
| GIVING YOUR COMPUTER AMNESIA? "i S. decus sine un ada 2 
| Let Syncware take the annoyance out of computing. Baby BBU and BBU-1 useex- | Payment must be in V. o. - 
T созы supply; in case AC line goes dead or power supply gets knocked out | rency. Send check, ие огаег ог 
_ of socket, battery takes over until power restored, preventing memory loss. international M. O. only. 


BBU-2 contains built-in heavy duty power supply, 
| eliminating need for original supply. In addition, 1.1 E 
_ BBU-2's output is pre-regulated at 8 volts for addi- 
tional glitch rejection, and also lets your ZX run con- 
siderably cooler. DON'T WAIT FOR A SUDDEN 
CRASH BEFORE YOU ORDER YOURS! 


ZX81 PARALLEL INPUT/OUTPUT BOARD 


_|1]2[3[%]5]в]7]в]з]в] | | 
| Ганев тура ое 


Features include: 16 User Programmable lines 
Fully TTL Compatible 


Lj [ajs]p]e[e|w[o[k]t[ Jew 
ser] | Jz]xic[vis[u[n]. [ue 
ы а ннакана 


A multitude of Keyboard & Display 
uses include: Interface 

Lighting Control Systems 
Robot Controller 

Home Security Systems 
Central Heating Control 


THIS IS A МЕМ, SURPLUS, 53 KEY, GOLD CONTACT, FULL STROKE, HIGH RELIABILITY 

KEYBOARD, ORIGINALLY MADE FOR A TEXAS INSTRUMENTS COMPUTER TERMINAL BY HI-TEK. 

WE MODIFIED THE CIRCUIT BOARD TO WORK WITH THE ZX80 AND ZX81 COMPUTERS. 

THE KEYBOARD IS ABOUT 12 INCHES LONG, 4 INCHES WIDE AND 1% INCHES THICK. 

THE SPACE BAR IS 6 INCHES LONG AND THE TWO SHIFT KEYS AND RETURN (ENTER) KEY 

ARE OVERSIZED FOR EASIER USE. THERE ARE 12 EXTRA KEYS WHICH YOU MAY USE FOR 

THE SPECIAL CIRCUITS DESCRIBED BELOW. DETAILED PLANS ARE INCLUDED WITH THE | 

KEYBOARD. AN OPTIONAL PARTS KIT IS AVAILABLE. 
ELECTRONIC SHIFT LOCK WITH LED INDICATOR- allows vou to lock the keyboard | 


. 4 E 7 7 T А 3 | 
їп the shifted mode. Simplifies entering graphics. | 
AND MANY MORE. AUTOMATIC REPEAT WITH LED INDICATOR- once activated, you сап hold any key | 
down and it will continuously input until released. Make it easu to | 
move the cursor quickly, draw graphies ete words, ete | 
| AUTOMATIC SHIFT FOR SELECTED FUNCTIONS- s like: delete, $, 
cursors, ", =, ete. can be placed on dec this etreutt 


does the shifting for you, electronically. 
THE KEYBOARD COMES FULLY ASSEMBLED AND READY TO CONNECT TO YOUR COMPUTER VIA 
| A 13 CONDUCTOR RIBBON CABLE (SUPPLIED). THE COMPUTER'S EXPANSION CONNECTOR IS 
LEFT FREE FOR USE WITH THE 16K MEMORY OR PRINTER, ETC. THE PARTS KIT IS NEEDED 
ONLY TO ADD THE SPECIAL CIRCUITS DESCRIBED. THE KIT CONTAINS ALL THE ELECTRONIC 
| PARTS REQUIRED, INCLUDING ALL IC'S WITH SOCKETS, RESISTORS, LED'S, ETC. YOU 
| PROVIDE ONLY SOLDER, WIRE AND A SMALL PIECE OF PERF BOARD FOR ASSEMBLY. 


PRICE: £16.50/$35 US $ Cheques accepted. 


О.К. ORDERS ADD £2.48 V.A.T. + 30p p. & p. 


Shipping, insurance, handling please add the following: 


U.S.— APO-FPO(PAL) $3, CANADA $6, ALL OTHER FOREIGN $12 


Texas residents add $2.53 state sales tax. 
FOR PARTS KIT ADD $13 and an additional $1 for postage/handling 


6 ——9 Texas residents add $.72 additional sales tax. 
DOUBLE H ELECTRONICS ALL PRICES ARE $ U.S. AND ONLY U.S. 


Е DOLLARS CAN BE ACCEPTED. MONEY ORDER | 
195 LELANI OR CASHIERS CHECK PREFERRED.PERSONAL 
CHECKS MUST CLEAR BEFORE SHIPMENT. 
E SAN ANTONIO, TEXAS 78242 


© OO COMPLETELY ASSEMBLED KEYBOARD & PLANS FOR THE SPECIAL CIRCUITS 


ORDER FROM: - 


Andrew Developments, 93 Beaconsfield Villas, 
Preston Park, Brighton, E. Sussex, ENGLAND. 
Tel. (0273)564629 


determined by substitution of the transis- 
tor's voltage drop into y. Finally, we can 
plot the data by hitting NEWLINE to get 
back to the menu and then entering 3. 
The sample plot reveals that the data are 
hardly scattered, as also predicted by the 
correlation coefficient of very near unity. 

Hopefully, this article will be of help or 
interest to many readers. This article barely 
scratches the surface of statistical analysis 
and function fitting. Bear in mind that the 
least squares technique is not limited to 
linear functions. Variations on the method 
can be used to fit polynomials of any 
degree to a set of data points. 


Note: Readers are referred to Jon 
Passler's "Linear Regression" in SYNC 
2:1 for more information on relating vari- 


ables. 


bs 
Dr 
€ Ggonceccoggronmne 


0 :É5ÉoaGrGe-c 


AA. to 


Figure 4: Program Listing 


REM ... LEAST SOQURES 
REM ... ANALYSIS PROGRAM 
REM "э п Br. 

REM a. ALGER SALT 
REM ... JANUARY 1962 
DIM Y (S 


а 
2 
“L. 


AST SGUARES DATA я 


т—— 


INPUT N 

CLs 

FOR I=1 TON 
GOSUB 10900 


PRINT "1- LEAST SQUARES" 


La] Cad Lad Ld Cad d ad Gd Gl Gd Cad Gd Gad (d 
Т Ш bo bok TETTE 


1-54) 


еб б RO UU 


RRRIZOZU QU 


UJ Cd GI o Gm Ld La Ld: 


~ LIST DATA“ 
- PLOT DATA" 

- START AGAIN" 
- QUIT" 


N 
19 LET SO-50-«vt(I)xx2 
20 LET S1-51-4XtI1j 
4ай LET $S2-52-4vt13 
60 LET S3-334X(I) жу {iI} 
SQ LET 54=54+ХІІ) x2 
тсе NEXT I 
29 LET S5-Sirx2 
40 LET M=((S2252-°N) -SS) 7 0 (551 


={(f-M#51) +52) ^N 
“SLOPE”, “Үү INTCP" 


3386 PRINT N.B 


O PRINT 
@ PRINT 

@ PRINT 

5 PRINT “EQUATION OF THE LINE 
6 PRINT | 
© PRINT “Y = “;М;"#х + (";B;" 
© LET SY=SOR ((SO-(S2xs2) /N) 7 
1)) 

© LET SX=SOR ((S4-(S1ks2) /N) / 
1)) 

@ LET CC-MxSX.SY 

@ PRINT 

1 PRINT 


= 
pe 
bal 
Bar 
= 
чен, 

— 
Pan | 
у» 
E 
рад 
= 
= 
= 
TX 
Ud 
= 


3 
5 
5 
5 
5 
S 
5 


3420 PRINT "COR. COEF. = ";CC 
3999 RETURN 

40080 REM ... LISTING ROUTINE 
4005 PRINT HT @.9: "b ul S x 


4290 GOSUB 1000 
4225 СОТО 4000 
4300 RETURN 


a 
LET YL=a 
FOR I-C TO 63 
PLOT I. © 
NEXT 
FOR 150. TO 41 


12 
13 
16 
17 
20 
21 
23 
2d 


^ 


5525 PLOT 


200 сото 1 


EE" » “H 


vY“ THEN GOTO 5528 


z528 FOR r=1 TO N 

S838 LET XN-iXII)-XL)^(XH-XL) #41 
SS4@ LET YN=(¥ (13 -YL}) 4 (YH-YL) #41 
S560 PLOT XN,YN 


36 


Are you ready to put your ZX-81 to 
work On some tough processing prob- 
lems? Would you like to use your ZX- 
81 in monitoring or control applica- 
tions? Then consider the Wisconsinc 
16K/32K memory board with I/O 
ports. 


The Wisconsinc memory board is de- 
signed for economy and flexibility. We 
offer kits ranging from a bare board 
and edge connector for the budget 
minded to a complete 32K with ports, 
aluminum enclosure, and a power 
Supply with sufficient capacity to 
source 500 ma to peripheral loads. All 
kits include complete schematic and 
instructions for the 32K with ports to 
allow easy expansion as your needs 
change. or as your budget allows. 


Wisconsinc 5 I/O ports consist of two 
8-bit LS TTL input ports and two 8-bit 
latching output ports. The ports are 
readily accessed using BASIC PEEK 
and POKE commands, or can be ac- 


DON'T JUST EXPAND YOUR MEMORY. 
EXPAND YOUR HORIZONS. 


cessed at very high speeds with user 
subroutines. The applications for ports 
are limited only by your imagination. 
With suitable external circuitry, they 
are useful for data acquisition and 
Storage, joystick interface, music 
synthesizer, realtime clock inputs, 
home security systems, environmen- 
tal monitoring and control, and much 
more. And the best part is that Wis- 
consinc s ports may be added later as 
the need arises; port kits come with 
headers and ribbon cables. 


Even if you don t need the ports, you'll 
find Wisconsinc's 32K memory to be 
easy to use, requiring only two simply 
BASIC commands to move the stack 
and re-initialize your ZX-81, providing 
16K for BASIC programs and 16K 
useful for large arrays and variables. 
This allows the use of large arrays and 
character strings, and will offer new 
possibilities in scientific and business 
applications, especially for engineer- 
ing or accounting students. 


16K memory kit ............... $99 
32K memory kit .............. $134 
PORE Lssesssdueurruk versus $32 
Bare board, connecter ......... $45 
16K add-on kit ................ $35 
Kit repairservice .............. $20 


Wisconsin residents add sales tax. 
Please add $4.95 for shipping and 
handling. Check or money order only. 
Allow 4-6 weeks for delivery. 


Get the most from your ZX-81, and put 
the world within reach of your key- 
board. Think about it. You can only do 
SO much with software. Sooner or later 
you Il wish you had ports. 


WISCON 


Wisconsinc Electronics 
PO Box 332 
Milton WI 53563 


SYNC Magazine 


JRS SOFTWARE 


x 
19 WAYSIDE AVENUE, WORTHING, SUSSEX, BN13 3JU eo 
TELEPHONE WORTHING 65691 (Evenings and Weekends only) -— 


As reviewed in ‘YOUR COMPUTER' . 
arch 1982 


16K RAM PACK 
£35 ($69.95) 


ASSETTE professionally recorded by 
SOUND NEWS STUDIOS 


GAMES PACK — Beat this for value! 5 x 16K ams PLUS 2 x 1K rams 
3-D Battle (M/code-1K) — Fast moving space battle with continuous count down Maa) 


of energy units left 
City Bomb (M/code-1K) — Destroy the buildings and land your plane Your tuel 
has nearly gone and you circle the city lower and l'ower 


Warp Wars (Basic & M/code-16K) — features realistic space craft moved by M code for 

(previously sold at Microfair with instant response WHY PAY 
Sweet Tooth for £4.95) MORE 
Snake (Basic-16K) — A game of thought and skill Pass through all the marked S 

(previously sold at Microfair squares without crossing or doubling back on your path 

for £3.95) but watch out for the expanding black blob 


Sweet Tooth (Basic & M/code-16K) — M code routines used to move your fat face round the 
screen and gobble the sweets 


PLUS Slalom and Black Holes (previously sold together for £4.95) 


An ESSENTIAL addition to your 1K RAM ZX81 (ог ZK 8K ROM) 


(please which when ordering) 
TOOLKIT (written by PAUL HOLMES) 
Provides the following additional facilities 


Line renumber yOu State starting number and increment value 

Search and replace changes every occurence of a character as you require 
Free space - tells you how many free bytes you have left 

SPECIAL GRAPHICS ROUTINES 

Hyper graphics mode graphics never seen on a 2Х81 before 

Open instantly sets up as many empty print lines as yQu require (1K version only! 
Fill used in conjunction with OPEN fills your screen instantly with your 
specified character 

Reverse changes each character on your screen to 115 inverse video 

TAPE ROUTINE - provides a system WAIT condition until a signal is received in 
the cassette ear jack - many uses ! 


Fully built, tested and guaranteed. 
No additional power supply required, 
black case 

No wobble problems — fully 
compatible with printer etc, etc 
(Please send large S.A.E. + 50p fora 
copy of 'YOUR OMPUTER' RAM 
pack reviews (March 1982) — 

Refunded when you purchase the 
RAM pack). Please allow 21 days for 
delivery 


STOP PRESS 


NOW AVAILABLE — 64K RAM pack 


All these routines are written in machine code and together take up only 

164 BYTES of your precious RAM an incredible achievement! 

The price i$ incredible too! ONLY £3.95 ($7.90) for cassette, including FULL 
instructions and example programs 

ALSO available 16K version ONLY £4.95 ($9.90) which include. all the above PLUS 
GOTO's and GOSUB's included in line renumber 

Search for and list every line containing specified character (56К useable) £75 inclusive $139 95 


(NEW) GRAPHICS TOOLKIT (Another masterpiece by PAUL HOLMES) 
22 


exciting MACHINE CODE routines that give you control over your screén as never before ! 
(ZX81 - 16K RAM ONLY) 


DRAW/UNDRAW draws or deletes your SCROLL facilities 

multi-character shape which is defined in a REM UPSCROLL 

statement. You may define as many different DOWNSCROLL Scroll your screen in the 

shapes as you like and draw or undraw each at RIGHTSCROLL direction indicated 

will at whichever screen position you choose LEFTSCROLL 

FOREGROUND ON/OFF use this to ‘protect’ ONSCREEN/OFFSCREEN turns your screen on or 

existing characters on your screen. When on new off 

shapes will appear to slide behind and re-emerge BACKGROUND ON/OFF 

from other shapes Fills your screen by your specified character. 
When foreground is on existing information is 

BORDER/UNBORDER:'Draws a border round the unaffected and shapes will appear to pass in front 

edges of your screen area. Edit lines can be used of your background, without deleting it 

if required. Your border is protected when 

foreground is on SEARCH AND REPLACE will search the screen fcr 
every occurence of the character you specify and 

FILL Fills any number of lines you specify, starting replace it with your new character 


at any line you specify, by your chosen character 
SQUARE draws a square or rectangle from your 


REVERSE Converts all characters to their inverse specified co-ordinates 

video, control as in FILL ALL these routines are in machine code for 
SUPER-FAST response ! Simply load GRAPHICS 

PRINT POSITION CONTROLS TOOLKIT, which repositions itself at the end of 

UP u | your RAM, and then your own program (or key in 

DOWN After your next PRINT position in a new one), GRAPHICS TOOLKIT uses only 2K of 

LEFT the direction indicated your RAM and that includes space to load the 

RIGHT programmers TOOLKIT described above (16K 

EDITPRINT Moves next PRINT position to first RAM version) 

edit line 


This includes a cassette with 2 copies of the program 

ALL FOR ONLY £5.95 ($11.90) plus a comprehensive instruction booklet with 
(amazing value from JRS) examples 
NOTE: All prices are fully inclusive — send checue or P.O. to JRS Software at above address 


OVERSEAS солон» Payment may be made in Sterling (Money Order available at | Prices quoted above are also export 
PLEASE NOTE your bank) ou $U.S. (U.S.A. customers only). prices and include AIRMAIL postage 


USE OUR PLANS AND SAVE $$$$$ 


SYN 
NCHBGNIRE YOUR SINCLAIR 


KEYBOARD how to add a full-size keyboard 
to a ZX/80 or 81.Includes instructions on how 
to use any extra keys for Shift Lock, Automatic 
shift, Automatic Repeat, and Reset. $5.00 


POWER SUPPLY Running a little hot? Design 
and build your own supply to fit your needs 
at a fraction of wired price. Includes how to 
estimate both present and future needs and 


covers both single and multi-voltage. $5.00 


BUSS Inexpensive exspansion system unlimits 
your edge connector. $3.50 


JOYSTICK Add popular Atari joysticks and 
find out how much fun games can be. 2. 


Send check or money order to: 


SYNCHRONIZE 
Box 1667 
Kerrville, Texas 78028 


PM ENTERPRISES 
Proudly Announces The 
MX-48 
48K Expansion Memory 
$169.00 


COMES WITH POWER SUPPLY AND 
EXPANSION CONNECTOR 


Other Fine Products 


MX-16 EXPANSION MEMORY $89.95 


2118-7 16KXI MEMORY 1.С. $ 5.80 
12VDC FILTERED POWER SUPPLY $19.95 
WIRE-WRAP_SOCKET MODIFIED 

FOR ZX81 | $ 7.50 


48K and Power Supply Available June 1st. 


Please Add $3.00 Shipping and Handling. 


PM ENTERPRISES 


4102 N 325 W 
LAPORTE, IN 46350 (219) 326-7923 
M.C./ CHECK/M.O./VISA/C.O.D. 


EZRA GROUP II 
EZRA GROUP II 


The ZX81/80's are making a name 
with LOW prices... 


WE CHALLENGE THE SOFTWARE COMPANIES 
TO LOWER THEIR PRICES! 


for ZX81/ZX80/8K ROM 
1K and 16K RAM versions 


BIOHInVItiS. iexaseaheuwastsxenawtuk rema tarkas 1.00 
Graphics Billboard 

Horse Насе......................................... 1 00 
SPINNER TM. (like Rubik's) 16K. 

Skew-a-Sketch (like Etch) 

Improved Pause (ZX81) 

Linear Ќедгеѕѕіоп. .................................. 2.00 
Linear Programming 

Shootist 


Self Addressed Stamped Envelope 
Gets YOU our Goodies Catalog 


ALL ORDERS AND CATALOG REQUESTS GET FREE 
Galactic Messages PROGRAM. 


EZRA GROUP II 
EZRA GROUP II 


P.O. Box 5222 San Diego, California 92105 (714) 584-8291 


4K ROM 
16K RAM 
4K RAM 


An Alternative Display Method 


- Tank Battle 


Drew Nisbet 


Perhaps the greatest inconvenience 
presented by the ZX80 to the person 
programming in Basic is the loss of video 
which occurs whenever the CPU is other- 
wise occupied. While you are sitting. 
perhaps not so patiently. waiting for a 
display to appear. the amount of time 
that the screen is blank seems much longer 
than it actually is. This may be only mildly 
Irritating when the program does not 
depend on user interaction. However. if 
the program involved is a board game 
which requires that an ever-changing 
playing arena be displayed repeatedly and 
that the program interact with the player 
to some degree. then periods of time spent 
before an unimpressive. grey screen can 
be fatal to the attention span of the 
player. 

The majority of board games written in 
Basic for the ZX80 display the playing 
surface by storing print codes in an integer 
array and printing each member of this 
array by means of a FOR/NEXT loop. 
Any change on the board. such as the 
movement of a token or the destruction 
of a coordinate. requires that the screen 
be cleared and that the display be re- 
created. Generally speaking. the larger 
the playing surface of a game. the better. 
but displaying a board which uses a large 
portion of the screen area by the method 
noted above сап take up to 30 seconds. 
Add to this the time required by the 
computer to perform any calculations 
which are required between displays and 
you may wind up with the plug being 
pulled on your program! In addition. any 
prompts or messages displayed for the 
players information must be kept to a 
minimum. or the playing surface must 
again be cleared in order to accommodate 
them. 


Drew Nisbet. 6 Moffatt Court. Toronto. Ontario. 


Canada, M9V 4E1 


38 


Figure 1: Token Use Directions. 


Symbol Meaning 

+ Ávailable coordinate 

E Destroyed coordinate 

H Location of player's tank 

> Location of computer's tank ? 


Inverse X* 
Inverse C 


Player's tank destroyed 
Computer's 


о 
о 


tank destroyed 


° Displayed at end of game 


Although the most valuable use of the 
PEEK and POKE commands may be to 
program and debug ZX80 machine code 
programs. they are extremely valuable 
when employed in any Basic program as 
tools for both examining and altering 
memory location contents. After an initial 
display has been created on the screen. it 
may be examined or altered by PEEKing 
or POKEing memory locations relative to 


the address stored in the D-FILE pointer 


(located in the two bytes starting at address 
16396). The game program which follows 
makes extensive use of this function. 
The screen display for Tank Battle is 
divided into two sections: the playing 
surface. or board. which occupies two 
thirds of the display. and a "message center" 


Figure 3: The Tank Battle Program. 


10 RANDOMISE 

20 LET HO = RND(9) х 10 + RND(9) 
50 LET HV = RND(9) 10 + RND(9) 
40 LET HN = 0 

950 LET CM = I 

70 LET SH = 0 

80 LET AS = "COORD:" 
90 LET BS = "YOU WIN” 
100 LET CS = "] WIN” 
110 LET DS = "] FIRED" 
120 LET ES = "FROM" 


+ 


which makes use of the remaining third 
of the screen and is located to the right of 
the game board. This arrangement affords 
the largest square playing area available. 
The two sections are prominently separated 
by a black line. The PRINT command is 
not employed after the initial playing board 
has been displayed as all alterations to 
the playing surface are made Бу POK Eing 
character codes into memory. АП prompts 
and messages are displayed and erased in 
the same manner. The longest period of 
time during which the screen is blank is 
approximately five seconds. the amount 
of time depending on the number of lines 
which must be deleted from the message 
portion of the screen. 


player's last coord=dummy 
player's 2nd last coord-dummy 
player's last move 

computer's move 


computer's target 


“#” represents a space 
“@” stands for the character shifted “Q”. 


SYNC Magazine 


Figure 3 (continued) 


150 LET FS = ID 

140 LET 6S = "PLAT:" 

50 LET HS = "TIE GAME 
160 LET IS = "GAME OVER” 
170 LET Jẹ = “AGAIN 


180 LET D = 5 player's beginning row 
190 LET E = 8 player's beginning column 
200 LET HL = 58 player's beginning coord 


210 LET CL = RND(9) + 10 + 1 

220 PRINT "3HHHHITANK BATTLE IBHICHPLAY : THEA” 
250 PRINT "dHrliHibibibiEilr IRISH FI TAH C RRR EH TP ETRE IET 
240 PRINT "4t"; 


250 FOR ] = I TU 9 
260 PRINT "#";1; 
210 NEXT J 


280 PRINT "ЖСР HEHE TE Si HES 

290 PRINT 7яННННЕННННННЕН НЕНЕН Е ҤНЕЕЕННЕНЕЕ” 
400 FOR | = 1 TO 9 

510 PRINT J 3 "ЕРЕ d+ ake de eb hip de EU 
520 PRINT "dnHkiBEBHIHHEIEHNHBHEBEHIEHBBEI Caki iriri Pp T 
$50 NEST i 


: $55 FOR I = 1 TO 22 
cone uA S 336 PRINT CHRS(121); 
| уу... | ш; 337 NEXT 1 
тое боз 12435 $40 LET Р = 67 + 66% ре E * 2 
3166 ++++ ++ | | FIRED 350 LET M = 45 '"HU 
+ +++ + M | FROM 62 560 GO SUE 1600 print player's location 
+ Tren TO 68 570 INPUT М5 input play 
т, s 380 IF NOT «MS = "M" OR MS = "S" OP if invalid ask again 
з d MS = "") THEN GO TO 370 | 
8 + + + + + + + + 
о, ,,.,., 590 IF MS = "" THEN GO TO 800 if end of game branch 
600 LET P = 29 print play selected 
410 LET M = CODE(MS) 
420 GO SUB 1609 
430 LET P = 89 print “COORD: ` 
440 LET TS = А$ 
| | 450 GO SUB 1910 
Figure 2 shows the screen layout after 660 INPUT C јара свого 
both the player and the computer have 695 LET D = - £ 1D ni 
taken several turns. The drawing is not to &ED LET E = C - D & 10 AC ORNA 
scale as the playing board is really double (90 IF D « 1 OR D» 9 ORE« 1 OR E» 9 if invalid coord ask again 
spaced both vertically snd horizontally. THEN GO TO 460 | 
The . which does not print on the screen. 500 IF MS = "S" THEN CO TO 660 if shoot branch 
is the point from which all PEEKing and 510 LET G = HL / 10 player's row 
POKEing is done in order to examine or 520 LET H= HL- G * 10 player's column 
| alter the board contents. The address stored 530 IF ABS(G - р) > 1 OR AàES(H- Е) > 1 if illegal distance ask again 
in the D-FILE pointer and 67 (32 print THEN GO TO 4€0 
codes plus 1 newline character times 2 9340 LET P= 67 + 66 * D+E * 2 
plus | print code on the third print line 550 IF PEEK(PEEK(16396) + PEEK(16397) if illegal coord ack again 
equals 67). The address for any coordinate * 256 + P) = 128 THEN CO TO 460 
on the board is determined by multiplying 960 GO SUB 1620 
the row coordinate by 6 (2 times 32 print 970 LET P= 67 + 66 * G+ H * 2 
codes plus | newline character). adding 2 S80 LET M = 19 bad 
times the column coordinate (for the 370 GO SUB 1600 blank player's old position 
horizontal double spacing) and adding 67 600 LET HL = : ЕС соога = new coord 
(for the reference point) to the contents BI MET P = М AR AP EJ E 
| of the D-FILE pointer. Alterations to the ile SUN З А mE 
| . АКША . ‚ 650 GO SUB 1600 display playor' s new position 
| message portion are accomplished by ; Е i 
| = р TERNI e rt 640 LET HM = 1 play = move 
POR Emig ше appropriate character cot 650 GO TO 890 branch to computer's turn 
into memory locations relative to the 660 GO SUR 1620 gressus edd 
contents of the D-FILE pointer. 670 LET P = 62- 66  D* E 2 i 
The program uses the subroutines at 680 LET M - 128 m 
lines 1600 and 1910 to accomplish the 690 GO SUB 1600 display hit coord 
above. The subroutine at line 1600 alters 700 LET HM = 2 play = shoot 
any memory location by POKEing a T10 LE? HD = HL let old coord = present coord 
character code M into the location relative 720 GO TO 890 branch to computer's turn 
to the contents of the D-FILE pointer by 730 LET Р = 352 
an offset of P locations. The subroutine 740 LET T$ = JS print 'GAME OVER‘ 
at line 1910 POKEs the message codes 750 GO SUB 1910 
into consecutive memory locations by 760 INPUT YS input yes or no 


May/June 1982 39 


examining the strings (TS) one character 
at a time. Lines 1430 - 1560 POKE zeros 
«code for a space) into any line which 
contains non-blank characters in the 
message portion of the screen. The routines 
located at lines 1620. 1690. 1970. and 2010 
display the coordinates selected by the 
player. the shots fired by the computer. 
the player's tank when destroyed and the 
computer's tank when destroyed respec- 
tively. 

The game itself was inspired by Lloyd 
Johnson's article "Paint Duel" in Creative 
Computing (July 1981). The player attempts 
to destroy the computer's tank by hitting 
it with a well-placed shot. The two plays 
available are Shoot or Move. The player's 
initial location is row 5 column 8. The 
computer tries to destroy the player's tank 
in turn. The starting location for the 
computer's tank is in the first column and 
a random row. After specifying the play 
selected the computer requests the coor- 
dinates of the target and then displays 
them in the message portion of the screen. 
A shot shows up on the screen as a "EJ" 
placed at the coordinates specified. A 
move is legal only if made to a coordinate 
directly above, below. left of. right of. or 
diagonally adjacent to the present location. 
A tank may not move to a coordinate 
which has previously been shot at. 

The computer's play is determined by 
the following odds: 

1) 10% chance it will do nothing. 

2) 10% chance it will shoot. 

3) 70% chance it will move if it shot last 
turn. 

4) 70% chance it will fire if player shot 
last turn. 

5) Move. 

These odds can be altered by changing 
the values in lines 890 - 920 of the program. 
The computer is prevented from firing at 
a coordinate which has already been shot 
at by PEEKing into the memory location 
for the coordinate selected and comparing 
its contents to 128 (black square). The 
tanks are prevented from moving into a 
hit square in the same way. Both the 
players and the computer's plays are 
completed simultaneously. which allows 
the possibility of a tie game if both tanks 
are destroyed on the same turn. Each 
player learns of the position of the oppo- 
nent's tank only if he is fired upon. If the 
computer decides to shoot. it will place 
its shot into a coordinate which it knows 
the player may have moved to. To end 
the game press NEWLINE when requested 
to play. 


Ed. —For those who do not wish to enter 
the listing, it is available from the author 
on cassette. Write for information. "a 


40 


920 
930 
940 
950 
960 


970 
980 


990 
1000 
1010 
1020 
1030 
1040 
1050 
1060 


1070 
1080 


1090 
1100 
1110 
1120 
1150 
1100 
1150 
1160 
1170 
1180 


1190 


1200 
1210 
1220 
1220 


1240 


1250 
1260 
1270 
1280 
1299 
1500 
1310 


1520 С 


1540 
1540 
135 

1560 
1570 
1580 
1390 


Figure 3 (continued) 


IF YS = “N” THEN STOP 

CLS 

RUN 

LET D = CE Z 10 

LET E = DL = D. * 10 

LET P= 67 + 66 * D +62 2 
LET M = 40 

GO SUB 1600 

LET Р = 287 

ЕР TS Is 

GO SUB 1910 

GO TO 730 

LET X = RND(10) 

IF X» 9 THEH GO TO 1140 

IF X « 2 THEN GO ТО 1020 

IF CM = 2 AND RND(10) > 3 THEN 
GO TO 920 

IF HN = 2 AND RND(10) > 3 THEN 
СО TO 1020 

LET D = CL / 10 

LET E = С = D € 10 

LET 9. D + RNDCS) = 2 

LET T = E + RNDCS) = 2 

IF S&S « I DR 5 > 9 OR T « 1 DE 
T > 9 THEN GO TO 940 

LET P = 67 + 66 я 65 + T # 2 


If РЕЕК(РЕЕК 16396) + PEEK( 16397) 


* 256 + P) = 

LET CL S x I0 * T 
LET CM 1 

GO TO 1140 

LET D = HV / 10 

LET E = HV - D ғ 10 
LET S = D + RND(3) 
LET T = E + RND(3) 


= 2 
= 2 


128 TEEN GO TO 900 


IF >< 1 OR S> 9 DE T « 1 

OR T» 9 THEN CO TO 1040 

67 + 66 + S^ T ¥ 2 

IF PEEK{PEEK( 16596) + PEEKCL6297) 


LET P 


> 256 + P) = 
LET SH- S х 104+ T 
LET M = 128 


GO SUR 1600 
GO SUR 1690 


128 THEN GO TO 1040 


LET АЙ 2 
IF HM = 2 AND С = CL THEN GO TO 1170 
IF CM = 2 AND SH = HL THEN GO TO 1230 
GO TO 1390 
IF CM = 2 AND SH = HL THEN GO TO 1230 
GO SUE 1970 
LET P = 287 
LET T$ = BS 
GO SUE 1910 
GO TO 730 
GO SUB 2010 
LET P = 287 
LET TS = CS 
GO 508 1910 
LET D = CL 10 
27-Е = CL = ж 10 
LET P 67 + 66 "D +E = 2 
LET M = 40 
GO SUR 1600 
СО TO 730 
GO SUE 1970 
GO SUE 2610 
LET P = 287 
LET 15 = H$ 
GO SUB 1910 
GO TO 739 
LET P = 287 


stop if no replay 


run if replay 


display computer's location 


print ‘GAME OVER" 


ask for replay 
10% 
10% 
70% 


do nothing 
shoot 


move 


chance to 
chance to 
chance to 
70% 


chance to shoot 


computer moves 


if invalid coord 


if illegal coord 


computer's new location 
c 


computer's play = move 
branch to request next play 


computer shoots 


if invalid coord 


if coord already hit 


coord of target 


"ре" 


display computers shot 
computers play = shoot 


if computer's tank hit 
if player's tank hit 
if no hits 
if both hit 
display computer's hit tank 
print 'YOU WIN’ 
branch to ask for replay 


display player's hit tank 
print '] 


display computer s location 


C»? 


branch to ask for replay 
computer's hit tank 


"= hit tank 


display 
display player 
print 'TIE 


branch to ask for replay 


SYNC Magazine 


———M——ÀÀ——— c FE 3 (continued) 


1500 LET TS = GS 

1410 GO SUB 1910 

1420 INPUT MS 

1430 LET М = 0 

1440 LET P = 29 

1450 GO SUB 1600 

1460 LET P = 89 

1570 IF NOT PEEK(PEEE(16296) + PEEK(16597) 
* 256 + P) = 0 THEN GO TO 1500 

1490 LET Р = P + $3 

1490 GO TO 155 

1500 FOR 1 = 1 TO 8 

1510 POKE РЕЕК( 16596) + PEEK(16397) * 256 

1520 LET P= P = ] 

1530 NEXT | 

1550 LET P = Р + 25 

1550 IF Р > $20 THEN GO TO 1570 

1560 GO TO 1470 

1570 LET HV = HO 

1580 LET HN = HM 

1590 GO TO 380 

1600 POKE PEEK(16396) + PEEK(16397) 
и 256 + Р.И 

1610 RETURN 

1620 LET P = 95 

1630 LET M= D + 29 

1640 GO SUB 1600 

1650 LET P = Р +] 

1660 LET M = E + 28 

1670 GO SUB 1600 

1660 RETURN 

1690 LET P = 155 

1700 LET TS = DS 

1710 GO SUB 1910 

1720 LET P = 188 

1750 LET T9 = ES 

1740 GO SUB 1910 

1750 LET P = 193 

1760 LET M = CL / 10 + 28 

1770 GO SUB 1600 . 

1780 LET M = CL = {CL / 10 ) * 10 + 28 

1790 LET P e P œ+] 

1800 GO SUB 1600 

1810 LET P = 221 

1820 LET TS * FS 

1850 GO SUB 1910 

1840 LET P = 224 

1850 LET M= 5 + 28 

1860 GO SUB 1600 

1870 LET M= T + 28 

1880 LET P = P + 1 

1890 СО SUP 1600 

1900 RETURN 

1910 LET M = CODE(TS) 

1920 GO SUB 1600 

1950 LET TS = TLSIETS) 

1940 IF TS = "" THEN RETURN 

1950 LET P = P + ] 

1960 GO TO 1910 

1970 LET P = 67 + 66 * TCL / 105 + 2 
* (LL = (CL Z 10) * 103 

1980 LET M = 168 

1990 GO SUB 1600 

2000 KcTURN 

2010 LET P = 67 + 66 * (HL / 10) + 2 
* (HL = (HL 7 10) * 10) 

2020 LET М = 148 

2030 GO SUB 1600 

2040 RETURN 

SYNCSUM = 125 4K ROM 4K RAM 


May/June 1982 


print 


"PLAY: " 


input 


p ] ау 


blank 


out old play message 


blank eut all messages 


lines which are non-hlznec 


+ PIU 


2nd 
last play = play 


last location = last 
yo display next play 


poke character code in memory 


poke coords in message section 


display computer's shot 


print '] FIRED’ 


print ‘FROM’ 


print coords 


print ‘TO’ 


print coords 


print first character of 
string 

shorten string 

if all done return 

branch to print next character 

print computer's hit tank 


us 


inverse 


print player's hit tank 


" * Li 
inverse > 


Z80 TUITION 


USING A 1K ZX81 
FOR 
MACHINE CODE 
PROGRAMMING 


8 Part fortnightly postal course also 
includes details for adding RAM EPROM 
HEX KEYPAD LCD DISPLCD DISPLAY 
& PROM PROGRAMMER. 


Course price $49.00 U.S.A./Canada 
£21.95 U.K. 


Or send $3.50/£1.50 for 280 Instruction 


Codes and Course Syllabus. 


ANDOVER SOFTWARE KITS 


15 Winchester Rd., 
Andover. 
Hants SP10 2EG. 
England. 


ZX-81/1K 


LISTINGS OF 5 GAMES — $2.00 


Z—GAMES 
P.O. Box 267 
Ringoes, N.J. 

08551 


Searching for software? Get 


creative computing 


1982 Software 
Buyers Guide! 


The new 1982 SOFTWARE BUYERS 
GUIDE from the Editors of Creative 
Computing gives you all the facts you 
need to make the right software 
purchasing decisions. The BUYERS 
GUIDE covers applications and systems 
software, with reviews of more than 150 
programs! There’s even a Directory of 
Manufacturers, cross-referenced to type 
of computer. — 

Get the information 
you need and save 
time, trouble and 
money. Get your copy 
of the 1982 SOFT- 
WARE BUYERS 
GUIDE today! 


Only $3.95! 


creative compatiog | 
SOFTWARE < 
BUYERS GUIDE 1 


Software Buyers Guide 
P.O. Box 340 
Broomall, PA 19008 


Please send me the Creative Computing 1982 
SOFTWARE BUYERS GUIDE. | enclose $5.00 ($3.95* 
plus $1.05 postage and handling). $6.00 outside U.S.A. 


Mr./Mrs./Ms. . 

(please print full name) 
Address Apt. 
City 
State/ Zip 


* Residents of CA, CO, CT, DC, FL, IL, MA, MI, MO, NJ, NY 
State, OH, SC, TN and VT please add applicable sales tax. 


41 


[ESOUICES  —À| 


Users Groups 


Central Pennsylvania Interest Group 

Meets every Tuesday at 8:00 p.m. 321 
Bouche Bldg., Penn State U. Campus, 
State College, PA. Initiator: Bill Russell. 
Phone: 814-364-1325. 


Club ZX 80/81 
Chemin du Moulin 38 
B - 1328 OHAIN 
Belgium 


SAM BAM (Sinclair and MicroAce Bay 
Area Microcomputer Users). Users 
"living in the Golden Triangle around 
Tampa Bay and along the golden suncoast 
of Florida" are invited to write for infor- 
mation. Locating users in the area is the 
immediate task. 

SAM BAM 

c/o Mel Routt 

PO Box 596 

Safety Harbor, FL 33572 


Memphis, TN, ZX81 Users Group just 
getting started. Contact: 
James Barker 
3791 Barron Ave. 
Memphis, TN 38111 
Phone: (901) 327-2158 


Voltage devices 


VOTEM for ZX81/ZX80. 8K ROM. 

Read voltage and temperature with 
extremely high sensitivity. Voltage range 
easily adjusted for wide variety of applicat- 
ions; temperature range: -25 to 125 C; 
self-contained and low power unit attaches 
directly to ZX80/81 with no hardware 
modifications; all calibration done in 
software; audio and visual tape load 
monitoring capability; circuitry for am- 
plifying and conditioning tape signal. 
Software runs in IK RAM. Kit, $39.95; 
assembled and tested, $59.95. 

Down East Computers 

PO Box 3096 

Greenville. NC 27834 


Protect all ZX80/81 ICs if voltage regulator 
fails by crowbar and fusing. Schematic. 
$2.00; with parts. $15.00. Schematic for 
precision setting of cassette output level. 


$2.00. 


Arnold J. Gold 
820 Prospect Ave. 
Hartford. CT 06105 


42 


Books 


Word Processors & Information Proces- 
sing: A Basic Manual on What They Are 
and How To Buy. by Dan Poynter. $11.95 
from: 

Para Publishing 

PO Box 4232-88 

Santa Barbara. CA 93103-0232 

Phone: (805) 968-7277 


Memory Expansion 


RKL-16K RAM. $79.95; expandable to 
32K whenever desired. RKL-32K RAM, 
$149.95. Upgrade 16K to 32K. $79.95. 
Add $4.95 s&h and 5% tax in Mass. 

RKL Systems 

PO Box 515 

Leominster, MA 01453 


Joysticks 


RKL-J1, single joystick system. $69.95; 
RKL-J2. dual joysticks. $89.95. Upgrades: 
RKL-U2. adds RKL-J1 to RKL-32, $59.95; 


RKL-U3 adds RKL-J2 to RKL-32, $79.95. 


Add $4.95 s&h and 5% 
RKL Systems 
PO Box 515 
Leominster, MA 01453 


tax in Mass. 


Publications 


SYNCHRO-SETTE. a monthly magazine 
with bi-monthly cassette containing at least 
six programs for the ZX81 or ZX80(8K 
КОМ) user. One year. $39.50. Visa and 
MC. For more information call 24 hr. toll- 
free hotline. 800/543-1300 (in Ohio. 
800/582-1364). ask for operator 383. 

S & S Company 

388 W. Lake St. 

Addison. IL 60101 

Phone: 312/628-8955 


Micro Moonlighter Newsletter wil provide 
techniques. tips. and guidance to those 
who wish to make money with their 
computer knowledge. Among the topics: 
Marketing methods. advertising hints, the 
ins and outs of contracts. books. Sub- 


scriptions: $25 for 12 issues ($29 in Canada; 
$35 worldwide). Visa and Master Charge 
welcome. Send inquiries to: 

J. Norman Goode 

2115 Bernard Ave. 

Nashville, TN 37212 


/ ХІ Sourcebook (TM) 

A catalogue listing software and hard- 
ware for the 4 Х81. For information on 
getting listed and getting copies. contact: 

Micro Design Concepts 

PO Box 280 

Carrollton, TX 75006 


The Index covers over 40 magazines and 
newsletters in the home/personal computer 
marketplace and includes over 12.000 
articles indexed by using the key words of 
the titles. For information and ordering 
contact: 

Missouri Indexing, Inc. 

P.O. Box 301 

St. Ann, MO 63074 

Phone: (314) 997-6470 


ROM Disassembly 


The ZX80 IK Disassembler for the 4K 
ROM ZX80. 

The ZX61 IK Disassembler for the ZX81 
and 8K ROM ZX80. 

To begin disassembly of ROM or MC 
program, enter starting address, a key is 
calculated and displayed. manual then give 
mnemonic, all numbers displayed in deci- 
mal, about 100 bytes of RAM to store 
MC program for disassembly; RAM mem- 
Огу test provided; addresses of bytes failing 
the test are displayed. Manual. reference 
cards, and cassette with the disassembler 
and memory test programs. $9.95 pp. 
Further information and catalog upon 
request. 

Lamo-Lem Laboratories 

Box 2382 

La Jolla. CA 92038-2382 


Programs 


8K ROM; 16K, IK. Games, utilities, tech 
prog.. household. and more. For details 
send SASE to: 

NGM INC. 

PO Box 18702 

Okla City, OK 73154 a" 


SYNC Magazine 


Software Review 


ZX Galaxians martin wren-Hilton 


к= | 
SOFTWARE PROFILE 
Name: ZX-Galaxian 
Type: Arcade fantasy 


System: ZX81; ZX80 8K ROM, 
SLOW mode; 4K RAM 


Format: Cassette 
Language: Z80 Machine Code 


Summary: A challenging game and a 
good implementation of 
the arcade game 


Price: £3.95; £1.00 s&h for U.S. 
Manufacturer: 


Artic Computing 

396 James Reckitt Avenue 
Hull, N. Humberside HU8 OJA 
United Kingdom 


ZX81 OWNERS with 16K RAM! 
IT'S READY---ARE YOU? 


$14.95 + 
2.50 S&H 


QUT FIG). 


If so, you get: 
*24-row/full-screen displays 
*Nearly 2K of machine code 

for FAST real-time graphics 


*A 4K Star Atlas as the moving 
backdrop during enemy engagements 


ZX-Galaxians is a good adaptation to 
the ZX81 of the popular arcade game of 
the same name. You are being attacked 
in deep space by formations of hostile 
Galaxians, and it is your mission to prevent 
them from attacking Earth by zapping 
them with your laser gun as they break 
out of formation and hurtle towards you. 

After being loaded, the game runs 
automatically. The title appears in large 
letters at the top of the screen, a bit of 
information about the game is showu, and 
you press any key to start. Four rows of 
eight galaxians appear hovering above your 
base. On the right side of the screen you 
will see the details of which buttons to 
press, what the current score is, what the 
high score is together with the name (up 
to six letters) of the high scorer, and a 
graphical representation of how many ships 
you have left. 


Martin Wren-Hilton, U.K. Correspondent to SYNC, 
4 Little Poulton Lane, Poultonle-Fylde. Backpool, 
FY6 7ET, United Kingdom. 


*9-еасһ fuel and skill levels that 


The thirty-two galaxians move left to 
right and back again. Your controls are 5 
for left, 8 for right and 0 for fire. Occa- 
sionally one or more galaxians break out 
of the formation and dive about the screen, 
dropping bombs as they go. You get 10 
points for each galaxian shot in formation 
and 20 points for those shot in mid-flight. 
The movement of your base is very smooth 
due to good use of the ZXSI's graphics. 
When your base gets hit either by a galaxian 
or by a galaxian's bomb, the explosions 
are quite good. 

Unlike the real Galaxians (TM), this 
game does not have the starry background. 
In addition the formation is rectangular. 
The letter "V" is used to represent the 
galaxians, and those flying around the 
screen are made up from the graphic 
symbols on letters Q, W, E and R, de- 
pending upon their direction of flight. 

If you are a keen arcade player, then 
ZX-Galaxians is for you. It is the best 
version of this game that I have played, 
and makes good use of the ZX81’s graph- 
ics. a” 


16K Programs for either ZX80-8K or ZX8l 


*PLANE FRAME-modelling for engineers 

*FUNDAMENTAL ANALYSIS-for stocks investors 

*POLSAT & GEOSAT-space age Ham Radio uses 

*MATH PAK-Routines & Fit, Variance Analyzer, 
Statistics, and RPN Calculator 

, *E.S.P.-test your precognition 
*Many others plus 6 1K 6-paks 


including Machine Code 


WRITE for free catalog. (In 
Europe, send U$1 bill or DM2 stamp: 
DELTASOFT/Osterfeldstr.79D/D-2000 Hamburg 54 GER) 


Mail coupon or copy with payment to: 


1 ] li 1 Hu 
vos T АГИ га inl ИЙ © IZETA Software/PO Вох 3522/Greenville,SC 29608 
no gun power, or no shields. 1 way & | 
to win----destroy ALL enemy craft. £ A M is 5... сеек a E 
*An enemy data generator imbedded in ^ ifor —— copy(ies) of SCOUT FIGHTER 2X81 16K 
the run as part of the "action" Sd jplus $2.50 S&H for the order, 
*'Blink"-less pauses in BASIC ee | NAME 
*Stick-on/peel-off custom keys x > 
*In-depth booklet explaining both са Ф | ADDRESS 
the "game" and the program о 5 | 
*Shipped on a certified cassette CITY/STATE/ZIP 


1 copy each side 


Please allow 4 weeks if paid by check. 


May/June 1982 43 


4K ROM 
1K RAM 


Since I have always loved video space 
games, I have been looking for some game 
that could possibly fit into my limited 1K 
of RAM. The product of several hours of 
often exasperating labor is Space Warp, 
which runs in 1K without any problems if 
entered as specified. 

The objective of Space Warp is to reach 
your base before running out of fuel. In 
order to do this, you must think ahead and 
consider how your speed will affect your 
fuel consumption. The distance to the base 
is 1000 miles, and you have 100 fuel units 
initially. Your speed, measured in warp 
factors as per Star Trek, has a direct bearing 
on your fuel consumption. Warp factors 
range from 1 (slowest) to 15 (fastest). Each 
turn, you will be asked to enter a warp 
factor. A read-out of fuel remaining, 
distance remaining, velocity, and warp 
factor as of last turn is also displayed. 
After entering the warp factor, you will be 
asked “DIRECTION?” Input F to move 
forward towards the base or R to reverse. 


Armando Fox, 62-23 Cromwell Crescent, Rego 


Park, NY 11374. 


S PACE WARP 27s A 
e aU 
LE X" 2 3 HRS G i "ns 
С^ gum Ё EE 
i 
i © i 
ae hee m ы ses WR 


Armando Fox 


The reason for reversing will be discussed 
below. When this has been done, one of 
two things will happen. 

If you are unlucky, an enemy satellite 
dispatched from a nearby base will harass 
your approach. This will appear as a double 
asterisk (**) at the rightmost edge of the 
screen. If you do not watch out for these 
satellites, they “eat” a random number of 
fuel units. This is often the downfall of 
many players. However, if you are going 
at warp 7 or less, you will be asked 
“RETREAT?” Answer Y or N. If you 
retreat, you will of course lose distance as 
well as fuel, but the enemy satellites cannot 
harm a retreating ship, so retreating does 
pay off as a strategy technique. If you 
decide to retreat, the appropriate fuel (and 
distance) will be added into the next 
calculation; if you decide not to, the enemy 
satellite will “eat” a random number of 
fuel units. 

Next (or first, if no satellite came after 
you) the screen will clear and then redisplay, 
hopefully with your ship farther over to 
the right, indicating that you have moved 


ZX81 PERSONAL BANKING SYSTEM 


WITH LOAD/SAVE DATAFILES 
AT DOUBLE SPEED 


closer to the base. The readout will again 
be displayed, and the “WARP” and “DIREC- 
TION” prompts will wait for input. 

This turn sequence continues until one 
of three things happens: 

1) You reach the base and stil] have 
fuel, and the message "HOME FREE" will 
appear near the center of the screen. 

2) You will reach the base without any 
fuel, drift, and collide with it—your ship 
will break up into several pieces. 

3) You run out of fuel before reaching 
the base, and the game will stop with error 
code 9/460. If you want to know how far 
you actually travelled, subtract the distance 
on the screen from 1000. 


Entering the Program 

This program runs in 1K, but it must be 
entered in two parts. The first part is the 
"set variables" section shown in Listing 1. 
Enter this short program and RUN. Enter 
the following values to be POKEd to the 
REM statement in line 1: 0, 3, 10, 0, 0, 132, 
128, 150, 139; 10, 0; 132, 3, 133, 6. Then hit 
LIST. Line 1 will look like a jumble of 
graphics symbols; these draw the ship. 
Now delete lines 40 through 70 (not 1 
through 30) and continue by entering the 
main program in Listing 2. To run the 
program, simply type RUN; since the 
graphics are stored as a REM statement, 
there is not much that can cause these 
variables to be cleared, except for NEW. 


"n 


Load the program in the normal way—enter, amend or delete your 
transactions (ZX81 will automatically scan standing order file and post 
any items due)—save the file of data onto cassette in 45 seconds—load 
a different datafile into the same program, also in 45 seconds—enter 
Items, etc.—save datafile only onto cassette (45 seconds)—repeat 
operation for any number of accounts. 


Absolutely no need to save program, as all information is held in data- 
files. Very easy to use—unlike other bank accounts. Requires a mini- 
mum of 16K RAM—can use much more (no modification required). 


On Demonstration at the next ZX Micro Fair. 


The personal Banking System also includes the following features— 
Full page detailed Bank Account, dual display (or printout). 
Automatic generation of standing orders on due dates. 

Validation of all entries. 

a any item previously entered. (Single/Multiple field correc- 
tion 

Enter an item (previously omitted) in the correct date order of the 
account. 

Single key operation. Utilises a M/C keyboard scan. 

Search for any item or items by cheque number, description or 
amount—display (and printout if required) with totals. 

Continuous display of statement extract, continually updated dur- 
ing input of entry. 

File of standing order details can be displayed, printed, added to, 
cancelled and amended. 

Detailed User Manual. 

After sales maintenance. 


Send £9.95 ($20) incl. for cassette and users manual to J.P. Gibbons 
A.I.B., 14 Avalon Road, Orpington, Kent, BR6 9AX, England. (Send 
large S.A.E. for details). 


There are only two suppliers of supported ZX81 software, this is one of 

them. Be sure to include your name and address. 

Coming soon: Bank Reconciliation Module—a separate program on 
cassette that utilises data supplied by the main program 
(S.A.E. for full details). 
The only expandable system for the ZX81. 

The Personal Banking System is also available from the Buffer Shop, 


Streatham, London and Branches of the Computer Bookshop Group, 
full maintenance still available. 


KOPAK GIVES 
YOU THE POWER! 


KOPAKTM is now offering The Source* 
‘America’s Information Utility’. The 
Source* gives you the power to access 
a wide array of services including: 
e Barter • Shopping * Business Infor- 
mation e Career Network * Electronic 
Mail e Medical Advice e UPI News 
$9.95 Service and much more. A modem is 
required to use The Source*. 

Source ID $100. 


KOPAK'STM Touch-A-Matic gives you 
the power to type more accurately and 
much faster. No wires, no soldering, 
simple to install. Our unique vinyl over- 
lay guides your fingers to the correct 
keys. Touch typing now possible with 
your Sinclair* or MicroAce* ! 


The KOPAKTM Sinclair* female Con- 
nector gives you the power to use the 
2-80 bus. Edgecard connectors specif- 
ically made for Sinclair* computers. 
e 46 Pins, 23/23 * All pins are gold 
plated e polarizing pin for correct 
alignment everytime! Available with The KOPAMATICTM Keyboard 
Solder-Tail, Wire-Rap and PCBoard. The KOPAKTM Printer 

$14.95 KOPAKTM Memory Products 
The KOPAKTM Disc 


More POWER on the way! KOPAK'STM 
Coming Creations: 

The KOPAKTM RS-232 Interface 

The KOPAKTM Bus 


‘KOPAK has the POWER to deliver! ’ 
Order by Phone or Mail, 

Charge it with MasterCharge or Visa © 1982 KOPAK Creations Inc. 

KOPAK Creations Inc. TM Trademark of KOPAK Creations Inc. 
Dept. SY sinclair* is a trademark of Sinclair* 
448 West 55th Street Research LTD. 


New York, NY 10019 MicroAce* is a trademark of MicroAce* 
(212) 757-8698 


Listing 1: Setting the Variables. — Žž — —  —  — — ——————— ——— — — Sample Run 


1 REM XXXXXXXXXXXXXXX (15 X'a) 40 FOR X=16427 TO 16441 


10 LET D=1000 SO INPUT Е 
20 LET Dzzo 60 FORE X, Е 
30 LET F=100 70 NEXT X WARP? 
—— 6 (NL) 
DIRECTION? 
Listing 2: Space Магр. | F (NL) 
ee aca оа (screen cleared) 
110 INFPUT W 380 PRINT CHRE (PEEK (16426+N)); WARP FUEL VELOC 
120 IF W15 OR Wei THEN GO TO 390 NEXT X 2 do 27 
110 400 РКІМТ 7 ш 
130 PRINT "DIRECTION?" 410 LET X=X+4 
140 INFUT D$ 420 NEXT X 
150 IF NOT (D£$-"F" OR D$-"R") T 425 FOR L=1 TO 25 
HEN GO TO 140 420 PRINT "d"; 
200 LET FzF-UWXRND CX) z5 NEXT L 
210 LET V=(W/2) * CRND(S) +5) 440 FRINT CHR (5) 
220 LET різу (ило) 50 IF S THEN GO SUR 600 
230 IF D$z"R" THEN LET Di--Di 460 IF Fei THEN STOF WARF? 
240 LET р=р-рі 470 IF Dei THEN GO TO 500 10 (NL) 
250 LET So 480 GO TO 100 DIRECTION? 
шо IF RND(6)=6 THEN LET S-226 500 PRINT , "HOME FREE" F (NL) 
270 LET D2=D2+Di 510 STOF 
280 IF DJO THEN LET Dzo 600 IF W7 THEN GO TO 660 (screen cleared) 
290 CLS 619 PRINT "RETREAT?" 
S00 PRINT "WARP", "FUEL", "VELO 620 INFUT D$ WARP FUEL VELOC 
C^, "DIST", Wy Е, V, D 630 IF D$-"N" THEN GO TO 660 10 572 40 
AO FR INT 640 LET р=р+уж (W/ 2) 
330 FOR X= -4 TO 6 645 LET F=F—-W 
340 FOR J=i TO D2/40 650 GO TO 670 
350 PRINT "st"; 660 LET F=F- (RND (5) X ZU) 
360 NEXT J 670 RETURN 


THE EXPLORER'S 
GUIDE TO THE 
ZX81 


If you have ZX81 then you need this 
book (120 Pages). 


1K and 16K Programs. 
Games and Application. 
RAM and I/O Circuits. 
Programming Hints 
ROM Routines. 


$11 from: 


TIME DATA 
3-Waldon Road . 
Califon, N.J. 07830 


Enclosed | | | | Check/MO. 
Name 

Address |. |. | 
City |. | | Stete | Zip 


TURN YOUR COMPUTER 
INTO AN ELECTRONIC WORKSHEET! 


NEW SPREAD SHEET PROGRAM — 
FEATURES: 


Z 27 COLUMNS X 40 ROWS . 
„АШ NORMAL CALCULATOR 
FUNCTIONS . 
ЁК .PLUS TIME SAVING SUMMATIONS 
С OF ROWS AND COLUMNS . 


e SPECIAL SAVE FUNCTION . 
e MENU DRIVEN . 
e ON CASSETTE WITH 
USERMANUAL . 
FOR ZX-81, 80 (8K, 16K) . 


PRICE: $16.00 ADD $1.50 POST. & 
HANDLING MAIL CK. OR M.O. TO: 


SOFTWARE APPLICATIONS 
Р.О. BOX 1922 
ATASCADERO, CA. 93423 


ананан te t BA Бы ананан ар аайын QUU UU, UU EO AR UU UB GUN ы и ы UI ка QU UU, UO M, MR tu JN M 


4K ROM 
1K RAM 


Storing 3-Letter Words in an Array 


I wanted to develop a method of storing 
as many three-letter words as possible in 
my ІК ZX80, using as little memory as 
possible. The solution is based on the fact 
that character numbers of the letters can 
be compounded into a single number, which 
can be stored in an array element. Thus 
three letters can be stored in two bytes. 

Listing 1, The Word Storing Routine, 
sets up arrays which are used in Listing 2, 
The WORDY Program. 

The technique takes the character 
numbers of the letters in a word; subtracts 
36, then multiplies by 1 for the first letter, 
30 for the second letter, and 900 for the 
third. Then the three are added together 
so that they can be stored as a single number, 
which must not exceed 32767, hence the 
-36 in line 14. Line 18 ensures that a space 
keeps its code number of 0, and a nul 
string is treated as a space. This allows 
one- or two-letter words to be stored if 
desired. 

Line 20 does the multiplication and 
addition, and the numbers representing 
the words are stored in Array S(). The 
maximum number of words this program 
can hold is 175. 

When the words have been stored, the 
whole of the word storing routine can be 
deleted. But remember never use RUN, or 
the words will be lost. The words could be 
stored at this stage, but it is better to get as 
much as possible of the main program 
entered first. 

Having entered Listing 1 and checked 
the SYNCSUM, which should be 18, enter 
Listing 2, starting at Line 32. The first part 
of Listing 2 cannot be entered until you 


F. W. Manders, 24 Horton St.. Lincoln, LN2 5NG, 


UK. 


46 


F. W. Manders 


are finished with Listing 1. Check the 
SYNCSUM again at the end of Listing 2. It 
should be 57. 

Now you are almost ready to store your 
175 words, but first the SYNCSUM Routine 
must be removed as we need the 27 bytes 
it occupies. We also need to store the 
program on tape at this stage, so we can 
kill two birds with one stone, as they say. 
When you have it safely on tape, enter 
NEW and then reLOAD from the tape. 

Enter RUN and the screen will display: 

ENTER WORDS 
0 

Now enter a 3-letter word (e.g., AND) 

and the screen will display: 
0 AND 
1 

Continue entering words until all 175 
have been entered. Then the error code 
9/26 will be displayed. Press any key and 
the program listing will appear. Delete 
lines 1 to 26 and enter lines 10 to 30 of 
Listing 2. 

When you have saved the completed 
program on tape, you are ready to start 
playing “WORDY,” which is a 3-letter word 


Listing 1: The Word Storing Routine 


DIM A(2) 
DIM B(2) 

DIM CZ 

DIM S8(174) 

PRINT "ENTER WORDS" 

FOR I-O TO 174 

FRINT I 

INFUT U$ 

CLS 

FRINT I, U$ 

FOR J=0 TO 2 

14 LET A(J)=CODE (U$) -36 

16 LET U$=TL$ (U$) 

18 IF A(J)< 2 THEN LET A(J)=90 
20 LET S(I» =5(1) *A(QD X3O0XXJ 
22 NEXT J 

24 NEXT I 

26 STOP 

SYNCSUM = 18 


p 
Hj O00 Qc 0 Sa he 


pt 
x 


Listing 2: The WORDY Program 


LET WzRND(t173)0-1 
LET W=S (W) 

FOR I-o TO 2 
LET J=2-I 

LET K=30xkxkd 

LET ACJ) =W/E 


| LET W=W-ACI) ЖЕ. 


IF ACJ) AL THEN LET АЈ) = 
ACJ) +26 

NEXT I 
FRINT 
FRINT 
FOR Ј=1 TO 10 
LET D=0 

INPUT U$ 

PRINT ОФ: "#" 5 

FOR [=O TO 2 

LET C(I) =CODE (US) 
LET U$=TL (US) 
LET BCI) =ACT) 
NEXT I 

FOR I=0 TO 2 
IP C(I)-B<(I) 
LET р=р+і 

LET СІ) =5 
LET ВІ) =2 
FRINT "ж"; 3 
МЕХТ І 

FOR I=0 TO 2 
FOR k=0 TO 2 
IF CD -EBCI) 
LET Ctk523 
LET B(I2-Z 
FRINT о; 


"WORDY" 


THEN GOTO 62 


THEN GOTO 82 1 


' NEXT К 


NEXT I 
FRINT 
IF D=3 THEN GOTO 90 
NEXT J 
PRINT 


| FOR I=0 TO 2 


PRINT CHRE (ACT) Ds 
NEXT I 


PRINT "#" 3) J 


SYNC Magazine 


version of "Mastermind." Enter GOTO 
any number up to 10, but not RUN or the 
words will be lost. Enter your word and 
NEWLINE. If you think the answer might 
be a 2-letter word, enter a space for the 
third letter. 

The program uses the multiplication sign 
to indicate a direct match and the zero for 
an indirect match. It allows up to 10 tries 
and prints out the correct answer and the 
number of tries needed, showing 11 if you 
have not solved it by the tenth try. 

The word selection and unscrambling 
routines are contained in lines 10 to 26. 
The selected number is divided by 900, 
i.e., 30**2, to'find the character number of 
the third letter. Then the remainder is 
divided by 30 for the second. The final 
remainder gives the first— when they have 
each had 36 added at line 24. The rest of 
the program is, I think, fairly conventional, 
but note the Boolean Logic in lines 52 and 
74. 

There are a lot more than 175 3-letter 
words in the English language, so you might 
like to make several versions. 

Besides showing a method of storing 3 


CX81 GRAPHICS MODULE 


Create your own unique character set under 
SINGLE DOT CONTROL. Up to 32 char. for 
creating game pieces, musical notation, foreign 
alphabet! ZX81-powered, no mods needed. 
PLANS $10 w/negatives: $15 Assembled: $89.95 


RX81 ROBOTICS INTERFACE 


Command the real world with this Input/Output 
Building Block. Detect 8 switch conditions and turn 
on/off 8 L.E.D. displays from your computer. 
Expandable to 32 devices! SIMPLE SOFTWARE 
Plans $5 w/negatives: $10 Assembled: $75 


f= COMING SOON: LP81 LIGHT PEN "has 
20 DEX .. Allows you to write directly on your TV! = 


EASTHILL, OAKHAM, MA 01068 WE PAY POSTAGE 


~~ 
~. 
z? Б" 


ЗЕ У LL LL 


characters in 2 bytes, this program also 
shows that once arrays have been set ир, 
the routine which established them can be 
deleted so long as CLEAR and RUN are 
avoided. 2" 


NOW AVAILABLE 


Keyboards 


Standard Computer Keyboard Designed 
for ZX81, ZX80, & MicroAce 


e Same switches used on Apple Computers 
• Two shift keys • 6-inch space bar 


ieee & ? 6 6$. 
oO WER T * Y + OQ р 


SE 6 F © HW ук ү 


E X с 


¥ 8 NAM 


Plans for keyboard conversion with reverse video — 
$5.00 
Keyboard with complete parts and plans — $55.00 
Wired keyboard, complete with plans — $75.00 


Shipping Charge (by UPS) — $5.00 


SRS ES er STE SES PEROT, SD IRE, EE 
SEND CHECK OR MONEY ORDER TO: 
SEND SASE FOR INFO 
Prices Subject To Change 


L.J.H. Enterprises 


P.O. Box 6305, Orange. CA 92667 
(714) 780-1422 Visa & M/C Accepted 


-81 SPACE 


RAIDERS" 


МЕ MABES HEROS Mage THETA PHY 


3.292 E 05 


8:275 E 05 
+4182 E 07 
4.780 E 06 


The Federation has 
declared a state of all-out war, 
leaving you in charge of the 
Starship Defiant: newest and 
most advanced spacecraft 
known to man. 

Soon, your experienced 
guidance will bring you within 
range of the Klingon convoy. 
Hundreds of stars flash by as 
you check the status of your 
Phasors, Shields, Masking, 
Navigation, Scanning, and 
Computation Equipment. Tne 
energy drain is tremendous, as 
the target distance indicator 
ticks slowly downward... 

As you come into range 
you set your cross-hairs on the 
nearest ship. Fire Phasors! !! 
Switch to Aft view!!! Evasive 
Maneuvers!!! Space explodes 
all around you as the first 
Klingon ship disintegrates and 


1.297 E ОЗ 


5.222 E 05 
-2.574 E O5 
5.692 E 06 


the remainder lock onto your 
position... 

High speed graphics and 
custom ML math package 
provide the real time, accurate 
simulation of the above space 
navigation and battle scenario. 
You've never seen this kind of 
performance on your ZX81 
before! 

Only $19.95 for cassette, 
keyboard overlay, and manual 
(shipping included). (Utah 
residents add $.95 tax) 


NIRAD 
ELECTRONICS 


959 East 460 South 
Provo, UT 84601 


4K ROM 
1К RAM 


Character Reverse 


Have you ever wanted to put a reverse 
character in a string but you had no way of 
doing it? Here is a simple answer. a small 
machine language program that will reverse 
a character for you: 


Decimal Mnemonic 
221,42,8,64 LD IX (nn) 
33,70,64 LD HL, nn 
35 INCHL 
126 LD A (HL) 
221,190,0 CP (IX d) 
200 RET cc 
254,27 CP n 
194,50,64 JP cc, nn 
35 INC HL 
126 LD A (HL) 
198,128 ADD A,n 
119 LD (HL) A 
195,50,64 JP nn 


How It Works 

The first line loads the IX register with 
the memory location of the end of the 
Basic program, pointed by VARS. then 
the HL register is loaded. LD HL. nn. with 
the end of the machine language program. 
The HL register is then incremented in 
the line INC HL. In the next line the A 
register is loaded with the memory contents 
pointed to by HL. The A register is then 
compared to the memory location pointed 
by the IX register. If they are equal. the 
program returns to Basic. The two will 
only be equal if it is at the end of the Basic 
program. The A register is then compared. 
CP n. with 27. the character number of *.”. 
If they are not equal. then the program 
jumps up to INC HL and repeats the 
cycle. If they are equal, then HL is incre- 
mented and the A register is loaded with 
the memory contents pointed by HL. Then 
128 is added. ADD A. n. to A to get the 
reverse of the character. It is then loaded 
back into the memory location pointed by 
HL. Finally the program jumps back to the 
first INC HL and continues until the end 
of the Basic program. 


Daniel Freeman, 2902 E. Hoover Ave., Orange, 
CA 92667. 


48 


Writing the Program 
Type the following: 
REM 12345678901234567890 
123456 
100 FOR X —16427 TO 16452 
110 PRINT X.. 
120 INPUT A 
130 IF РЕЕК (16421)<2 THEN CLS 
140 POKE X.A 
150 PRINT PEEK(X) 
160 NEXT X 
Then type in: 
10 REM THEN THEN THEN THEN... 
Continue typing THEN until line 1 
disappears. then enter: 
10 REM DO NOT GO UP 
RUN and enter the following values: 


16427 221 
16428 42 
16429 8 
16430 64 
16431 33 
16432 70 
16433 64 
16434 35 
16435 126 
16436 221 
16437 190 
16438 0 
16439 200 
16440 254 
16441 27 
16442 194 
16443 50 
16444 64 
16445 35 
16446 126 
16447 198 
16448 128 
16449 119 
16450 195 
16451 50 
16452 64 


DO NOT PRESS LIST OR HOME. THE 
PROGRAM WILL BE LOST IFSHOWN. 


Delete lines 100-160; then save the pro- 
gram. 


To Operate: 

Before writing your own program. load 
this one. Whenever you need the reverse 
of a character. insert a "." before the 
character to be reversed. Then enter GOTO 
USR(16427). More than one character can 
be done at a time. 

If you wish to use a different character 
than ".". POKE 16641. (the character 
number of vour choice). a" 


Daniel Freeman Index га 


SaOVertisers 


PUEDE. x coh ehh ber boda RV RP нана. 31 
Altex Electronics......-................ 2 
Andover Software......................41 
Andrew Developments..................35 
Audiograph Co... osos 20 
В & В Ѕоймае 0... 33 
Вуѓе-Васк Со............... „ОЛЕГЕ І 
CAI Instruments.......................13 
Compusoft Publishing.......... 6 
Computer Continuum...................20 
Cook Laboratories....................... 5 
Стозшп.......у%+...+..»+.-+,--..... cal 
Dolphin Computer... es 19 
Doran Engineering......................33 
Double H Electronics. 0... 39 
Ezra Groupdl. 2... oo Й 
Flint Data Systems. „анаа КӘ 
Fuller Micro.................. Cover 3 
J.P.Gibbons.......................... M 
Gladstone Electronics. ‚24,25 
Intellectual Games. . ree ere 6 
JRS Software. .......................... 37 
KB Enterprises. . . ООЛО 18 
ODO eco hie rexaxésm ve der кез isyan . 
Lamo-Lem Laboratories... .............. 22 
Leading Edge.....................Cover4 
L. J: H. Enterprises.: -oo eser 47 
William D. Марез...................... 27 
Мето{ёеН.........5.......--.5з4ввхяз 7 
Nirad Еесігопісѕ ..................... 47 
PM Enterprises.........................37 
Sinclair Place..........................33 
Sinclair Кеѕеагсһ. 10 
БОЙвУуПС..................4-......5› ...21 
Software Applications................... 45 
бупсһгтот2е...........................37 
Synchro‘Sette..-..................Cover 2 
SEND. esses than deta яз» e к=з Kite gars 17 
SUVICWaTe. sse euh auk саноа. Jo 
Systems & Solutions ...................27 
Timedata.... cece cn e e 45 
Dennis Weber.......................... 18 
Wisconsinc Electronics.................. 36 
Zeta Software... 43 
7/,<заїйё$...:.......................... 41 
VOU. „+ уз „улага кх re ee ee 47 


М Е М! creative computing 
1982 SOFTWARE 
BUYERS GUIDE 


Details on more than software programs, including 
applications and systems software, directory of 
manufacturers, and more! Get the facts you need 


before you buy—order your copy today! 
TO ORDER: 
Send $5.00 ($3.95* plus $1.05 postage & 
handling) to: 
SOFTWARE BUYERS GUIDE 
P.O. Box 340 
Broomall, PA 19008 
$6.00 outside of U.S.A. 


*Residents of CA, CO, CT, DC, FL, IL, MA, MI, MO, NJ, NY State, 
OH, SC, TN and VT please add applicable sales tax. 


SYNC Magazine 


FULLER FD SYSTEM $79.95 


Professional Keyboard & Case for Sinclair ZX81 


The ZX8lfits inside. 

The tough ABS injection moulded 
plastic case measures 8” x 14" x 2^" 
and hooks up to your ZX printed 
circuit board in minutes. No technical 
know how or soldering is required. 


KEYBOARD LAYOUT: 

All the Sinclair ZX81 keys are duplicated on our layout, with extra shift and new 
line keys. The professional momentary action key switches have a guaranteed 
life of 10° operations. The unit is fully built tested and comes complete with a 
money back guarantee. 


INSTALLATION MOTHERBOARD: 
Simply unscrew the ZX printed circuit board from We also manufacture a mother board which allows 
its case and screw it into the FD Case. expansion to the ZX memory and 1/0 facilities 


WITHIN the case, as well as our power supply unit 
and reset switch. 


ГАО Собе | | Price T Qty Amount 
Fuller FD System 42 Keyboard & case 79.95 


б 
FD System Motherboard | 2995 | | 
FD 16K. Memory Module 
FD 64K. Memory Module 149.96 
FD PSU 9 Volts at 2 amp. | 1495 | | | 
FD Shipping and Handling вој 


Mail to FULLER MICRO SYSTEMS, 
The ZX Centre, Sweeting Street, Liverpool 2. England, U.K. 


IE NT u-—u————-—-—-———————————————— 
m 48s с ЖЖЖ Т, 74 C T—————— €